- [NSString componentsSeparatedByString:] утечка - PullRequest
0 голосов
/ 28 ноября 2010

У меня есть следующий код:

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;Приборы не обнаруживают утечку.Утечка - это иллюзия, особенность симулятора?

1 Ответ

7 голосов
/ 28 ноября 2010

Нет никакой возможности, что память могла действительно просочиться, componentsSeperatedByString: возвращает автоматически освобожденную NSArray.

Доверяй инструментам, когда дело доходит до этих вещей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...