Iphone核心数据内部不一致

kiy*_*shi 2 iphone core-data

这个问题与我在这里发布的问题有关:Iphone核心数据在保存崩溃然而错误是不同的所以我正在提出一个新问题.现在,在尝试将新对象插入到managedObjectContext中时出现此错误:

 *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', 
 reason: '"MailMessage" is not a subclass of NSManagedObject.'
Run Code Online (Sandbox Code Playgroud)

但显然它是:

@interface MailMessage : NSManagedObject { ....
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时:

 NSManagedObjectModel *managedObjectModel = [[self.managedObjectContext
    persistentStoreCoordinator] managedObjectModel];

 NSEntityDescription *entity =[[managedObjectModel entitiesByName] 
    objectForKey:@"MailMessage"];

 NSManagedObject *newObject = [[NSManagedObject alloc] initWithEntity:entity 
    insertIntoManagedObjectContext:self.managedObjectContext];
Run Code Online (Sandbox Code Playgroud)

当我不提供MFMailComposeViewController时,它运行正常,但如果我在中运行此代码

- (void)mailComposeController:(MFMailComposeViewController*)controller 
  didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error {
Run Code Online (Sandbox Code Playgroud)

方法,它在创建newObject变量时抛出上述错误.使用print对象时的实体对象产生以下内容:

(<NSEntityDescription: 0x1202e0>) name MailMessage, managedObjectClassName MailMessage, 
   renamingIdentifier MailMessage, isAbstract 0, superentity name (null), properties {
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,所以我认为managedObjectContext完全无效.我不知道为什么说MailMessage在那时不是NSManagedObject的子类,而不是另一个.

任何帮助将不胜感激,提前谢谢.

Ben*_*zar 10

MAILMESSAGE类可以在一个库中实现或框架别处.由于目标C没有实现的命名空间,两个中的一个将被使用.哪一个未定义.尝试为您的班级提供不同的名称,以便快速解决问题.

  • 太感谢了.我整天都陷入了困境.我使用了一个实体"帐户",...总是得到错误.我通过将其更改为"XXXAccount"来修复. (5认同)