У меня есть следующий код:
NSString *indexText = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
if (indexText==nil) {
[indexText release];
indexText = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
}
[data release];
NSAutoreleasePool *innerPool = [NSAutoreleasePool new];
NSArray *packageList = [indexText componentsSeparatedByString:@"\n\n"]; //if commented out, there's no leak
[indexText release];
[innerPool drain];
Я выполняю componentsSeparatedByString:
на indexText
, но я теряю довольно много памяти, несмотря на тот факт, что packageList
автоматически освобожден (доказано тем, что код вылетает, если я попытаюсь выпустить его снова).Когда я закомментирую строку с componentsSeparatedByString:
, утечка исчезнет.
Кстати, я просматриваю использование памяти в Activity Monitor во время работы iPhone Simulator;Приборы не обнаруживают утечку.Утечка - это иллюзия, особенность симулятора?