Странная проблема с памятью - PullRequest
1 голос
/ 05 января 2011

В какой-то момент я выделяю элемент NSMutableData следующим образом:

NSMutableData* data=[[NSMutableData alloc] initWithLength:0];

Позже я делаю:

NSString *dataAsStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] ;
completeCommand = [NSString stringWithFormat:@"%@%@",
    incompleteMessage,
    [dataAsStr substringWithRange:NSMakeRange(startIndex, i-startIndex)]];         
[incompleteMessage release];
incompleteMessage = nil;
[dataAsStr release];

И, наконец, я звоню:

[data release]; //Here I get a BAD_ACCESS error since data gets a release count of -1

Теперь, согласно инструментам (Распределение с поддержкой зомби), первая строка второго блока NSString * dataAsString = ... вызывает [выпуск данных]

Где это происходит?

1 Ответ

0 голосов
/ 07 января 2011

Тайна разгадана .. Это довольно большой метод, так что я не осознавал, что [выпуск данных] был в цикле и его не было. Это было причиной зомби.

...