objective-c - 迁移后抛出核心数据异常

标签 objective-c ios core-data migration

迁移核心数据后出现以下异常:

[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/

相关文章:

ios - 如何在 XIB 中正确加载和显示自定义 UIView?

ios - spriteKit 碰撞不起作用

ios - 核心数据删除一个元素 NSManagedObject Swift

iphone - 迁移对象模型时在 coredata 中添加具有递增值的属性

iphone - 创建自定义 IOS 表情符号的指南?

ios - 使用 Core Data 和 Magical Record 编辑自定义对象

ios - Segue 不会传递数据

iphone - xcode 地理位置 : Getting coordinates before view is loaded

ios - 如何在 Objective-C 中检查一个对象是否为 nil?

ios - 我的 WatchKit 应用程序中 openParentApplication 的行为不一致