Утечка в сохраненномObjectContext save: - PullRequest
1 голос
/ 03 мая 2010

У меня есть следующий фрагмент кода, и когда я использую Instruments / Object Allocations, он говорит мне, что там есть утечка (которая сводится к sqlite3MemMalloc). Есть что-то, что я должен выпустить?

if (![managedObjectContext save:&error]) {
  NSLog(@"Error while saving.");
}

Сохранение работает хорошо и не вызывает ошибку.

Ответы [ 2 ]

2 голосов
/ 03 мая 2010

Утечка, скорее всего, произошла в одном из сохраняемых управляемых объектов, и это просто показано здесь. Если вы посмотрите на стопку инструментов, вы можете увидеть протекающий объект. Поскольку он отображается только при сохранении, он, вероятно, находится в коде проверки.

1 голос
/ 04 мая 2010

Есть ли у вас подклассы ваших NSManagedObject экземпляров?

Когда вы устанавливаете значение в ваших NSManagedObject экземплярах, вы освобождаете ли вы их право собственности на них? Например, если вы делаете следующий код:

NSString *someString = [[NSString alloc] initWithString:@"Blah"];
[myManagedObject setValue:someString forKey:@"stringValue"];

У вас будет утечка памяти, потому что вы все еще владеете этим NSString. Это то, что TechZen имеет в виду выше.

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