我有以下代码,当我使用Instruments / Object Allocations时,它告诉我那里有一个泄漏(可以归结为sqlite3MemMalloc)。有什么东西我应该发布吗?
if (![managedObjectContext save:&error]) {
NSLog(@"Error while saving.");
}
保存效果很好,不会触发错误。
答案 0 :(得分:2)
泄漏很可能是在一个被保存的托管对象中,它只是在这里显示。如果您查看Instruments中的堆栈,您可能会看到泄漏的对象。因为它只在保存时出现,所以它可能在验证代码中。
答案 1 :(得分:1)
您是否有NSManagedObject
个实例的任何子类?
当您在NSManagedObject
个实例中设置值时,您是否释放了对它们的所有权?例如,如果您使用以下代码:
NSString *someString = [[NSString alloc] initWithString:@"Blah"];
[myManagedObject setValue:someString forKey:@"stringValue"];
你会因为你仍然拥有NSString
而泄露记忆。这就是TechZen在上面提到的内容。