NSArray NSString утечка памяти - PullRequest
0 голосов
/ 30 января 2010

У меня есть простой способ прочитать строку и разобрать ее в массив,

-(NSArray *) readFileToArray: (NSString *)file{
    NSString *values = [NSString stringWithContentsOfFile: file];
    NSArray *tokens = [values componentsSeparatedByString:@":"];

    return tokens;
}

однако инструменты сообщили мне, что я обнаружил утечку NSString в строке

NSArray *tokens = [values componentsSeparatedByString:@":"];

Понятия не имею, почему это происходит,
1). Я думаю, что значения и токены автоматически выпущены? Я прав?
2). Я пытался освободить значения и токены (просто попытка), он вылетает.

Заранее спасибо за помощь.

Michael

Ответы [ 2 ]

0 голосов
/ 15 января 2013

Утечка - NSString *values = [NSString stringWithContentsOfFile: file];

Вам нужно добавить авто-релиз в этой строке, чтобы исправить утечку.

0 голосов
/ 30 января 2010

Код, который вы опубликовали, использует правильное управление памятью (возвращаемое значение автоматически высвобождается). Посмотрите на код, который вызывает readFileToArray:, чтобы увидеть, как он обрабатывает возвращенный массив.

...