С тех пор, как я переключился на XCode 4, инструмент утечек показывает МНОГО утечек, все из JSONKit и ASIHTTPRequest, после 2-минутного прогона я просачиваю сотни массивов / словари / строки (из jk_create_dictionary, jk_parse_array, HTTPMessage :: * и т. д.) на общую сумму несколько сотен КБ. Большинство трассировок стека не происходят ни в одном из моих вызовов, а остальные совершенно невиновны. ) на общую сумму несколько сотен КБ. Большинство трассировок стека не происходят ни в одном из моих вызовов, а остальные совершенно невиновны. ) на общую сумму несколько сотен КБ. Большинство трассировок стека не происходят ни в одном из моих вызовов, а остальные совершенно невиновны. Я уверен, что до XCode 4 это было не так. Я не знаю, кто виноват. Любое понимание было бы замечательно.
Обновление:
Утечки JSONKit, вероятно, связаны с кэшированием JSONDecoder.
Например:
static JSONDecoder *decoder = nil;
if (!decoder)
decoder=[[JSONDecoder alloc] init];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:url]];
[request setCachePolicy:ASIDoNotWriteToCacheCachePolicy];
[request setCompletionBlock:^{
NSData *response = [request responseData];
NSDictionary *json = [decoder objectWithUTF8String:[response bytes] length:[response length]];
// ...
}];
[request setFailedBlock:^{
// ...
}];
[request startAsynchronous];