Я читаю почти каждый вопрос здесь о SO об управлении памятью, который связан с NSStrings, но я не могу решить эту проблему.Утечка памяти с помощью NSString
@interface:
@property (nonatomic, retain) NSString *criticalTranscription;
@implementation: viewDidLoad:
criticalTranscription = [[NSString alloc] init];
NSArray *paragraphs = [doc valueForKeyPath:@"critical.text"];
for(int i = 0; i < [paragraphs count]; i++)
{
criticalTranscription = [criticalTranscription stringByAppendingString:[[paragraphs objectAtIndex:i] valueForKey:@"p"]];
criticalTranscription = [criticalTranscription stringByAppendingString:@"\n\n"];
}
[transcription setText:criticalTranscription];
@XIB UISegmentedControl с IBAction связан с:
- (IBAction) changeText:(id)sender
{
if(transcriptionSelector.selectedSegmentIndex == 1)
[transcription setText:diplomaticTranscription];
else
[transcription setText:criticalTranscription];
}
При изменении значения UISegmentControl (первое, что сразу после загрузка, ничего другого работает), я столкнулся с этой ошибкой (NSZombieEnabled = YES):
2011-07-07 01:10:43.639 Transcribe[404:707] *** -[CFString length]: message sent to deallocated instance 0x1189300
Я не вижу ничего соответствующего в трассировке. Без NSZombieEnabled criticalTranscription просто указывает на случайные массивы или что-то еще. Дальнейшее использование переменной или каких-либо выпусков не существует.
Я провел анализ без каких-либо подозрительных утечек.
В чем проблема?
Где вы создаете и устанавливаете 'diplomTranscription'? – PengOne