迁移核心数据后出现以下异常:
[NSPersistentStoreCoordinator retain]: 消息发送到释放实例 0x544d550
只有在迁移之后以及当我单击主页按钮并且应用程序进入后台时才会发生这种情况。
实例 0x544d550 是 persistenceStoreCoordinator 本身。
关于发送消息的任何想法?
谢谢!
最佳答案
通过调用[NSPersistentStoreCoordinator retain]
,你正在调用一个对象方法(那些在类上以-
(减号)开头的方法。Retain 应该在对象。
您应该首先创建对象(分配),然后保留它(如果需要)。
这是一个如何使用该类的示例:
NSPersistentStoreCoordinator* persistentStoreCoordinator =
[[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[NSManagedObjectModel mergedModelFromBundles:nil]];
请注意,以这种方式创建的对象已经具有 1
(一)的引用计数。完成后,您需要释放它。除非你使用带有 ARC 的 iOS 5,否则你不应该弄乱引用的数量,因为垃圾收集器会为你处理。
编辑: 我刚刚意识到那是错误消息,而不是您的实际代码。
如果您收到无法保留未分配对象的消息,您可能正在执行以下操作:
NSPersistentStoreCoordinator* persistentStoreCoordinator;
[persistentStoreCoordinator retain];
或
NSPersistentStoreCoordinator* persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[NSManagedObjectModel mergedModelFromBundles:nil]];
[persistentStoreCoordinator release];
[persistentStoreCoordinator retain];
您在其中保留了一个未分配的对象,这应该是您收到消息的原因。
关于objective-c - 迁移后抛出核心数据异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8118942/