У меня следующая ситуация, которая может привести к утечке памяти в приложении iPad.
У меня есть класс со строковым свойством ...
@property(nonatomic,retain) NSString * synopsis;
Я установил свойство строки из какого-либо HTTP-ответа, либо из JSON, либо из XML-ответа.
В этот момент счетчик сохранения объекта синопсиса равен 1.
Но у меня такая ситуация:
Я сохраняю синопсис в локальной базе данных sqlite, а затем хочу выпустить его из памяти, но у меня возникает странная ситуация, когда вызов [synopsis release]
изнутри моего объекта не уменьшает счет сохранения до 0.
(void) save
{
NSLog(@"synopsis before save retainCount=%d",[synopsis retainCount]);
[self saveToDb:synopsis withKey:@"synopsis"];
NSLog(@"synopsis after save retainCount=%d",[synopsis retainCount]);
[synopsis release];
NSLog(@"synopsis after release retainCount=%d",[synopsis retainCount]);
synopsis=nil;
}
В консоли я получаю:
synopsis before save retainCount=1
synopsis after save retainCount=1
synopsis after release retainCount=1
Как это возможно? Я получаю тот же результат в симуляторе или на устройстве.