在managedObjectContext中泄漏保存:

时间:2010-05-03 19:07:12

标签: iphone sqlite core-data memory-leaks

我有以下代码,当我使用Instruments / Object Allocations时,它告诉我那里有一个泄漏(可以归结为sqlite3MemMalloc)。有什么东西我应该发布吗?

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

保存效果很好,不会触发错误。

2 个答案:

答案 0 :(得分:2)

泄漏很可能是在一个被保存的托管对象中,它只是在这里显示。如果您查看Instruments中的堆栈,您可能会看到泄漏的对象。因为它只在保存时出现,所以它可能在验证代码中。

答案 1 :(得分:1)

您是否有NSManagedObject个实例的任何子类?

当您在NSManagedObject个实例中设置值时,您是否释放了对它们的所有权?例如,如果您使用以下代码:

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

你会因为你仍然拥有NSString而泄露记忆。这就是TechZen在上面提到的内容。