2013-10-02 38 views
0

尝试点击我的应用程序中的按钮后,收到“消息”不是NSManagedObject错误的子类。该应用程序编译得很好,我可以使用我的应用程序的其他部分。有趣的是,它在iOS7中运行得很好,但在iOS6中崩溃。我已经阅读过以我的实体为前缀,但由于它在大约50个类中调用,我正在检查是否有不同的解决方案。我也很好奇它为什么在iOS7中工作,但不是在iOS6中工作。另外如果我删除了MessageUI.framework它可以在iOS6和iOS7上运行。“消息”不是NSManagedObject错误的子类

+4

你应该*总是*前缀你的类(特别是当它被命名为“消息”一样通用)。通过右键单击课程名称并选择“重构>重命名”,您可以轻松地重命名课程。 Xcode会完成剩下的工作(如果它没有崩溃,那么......))。 –

+0

它似乎没有让我做折射器>重命名。将实体名称从“消息”更改为XMessage后,我收到一些不同的错误,人们说我必须删除并重新创建数据库才能使其正常工作。 – Colin

回答

0

我发现,如果我使用默认的配置/默认(类相同的实体名称:的“WebResource”我的形象的例子,我会在声明中得到一个异常

reason: '"WebResource" is not a subclass of NSManagedObject.' 

WebResource *条目= [NSEntityDescription insertNewObjectForEntityForName:@ “WebResource” inManagedObjectContext:mymanagedObjectContext];

,但如果我改变类为 “NSManagedObject” 我不知道为什么默认是没有一切工作正常。 t“NSManagedObject”:(

0

似乎有些名称不适用于实体:Message,WebResource,BluetoothDevice(截至iOS 11)。

重命名实体和关联的类为我解决了它。