我有一个核心数据对象Account
,表示为的子类NSManagedObject
:
@interface Account : NSManagedObject
我的整个应用程序一直开发得很好,但是,当我添加了MessageUI.framework
这样我可以获得一个撰写电子邮件视图控制器时,一切都变得松散了。该应用程序可以正常链接和编译,并且运行良好。直到,也就是说,我开始与我以前工作的Account
对象进行交互。然后,我开始得到这些:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException',
reason: '"Account" is not a subclass of NSManagedObject.'
*** First throw call stack:
(0x202b012 ... 0x2385)
libc++abi.dylib: terminate called throwing an exception
这个特殊的一个是由以下原因引起的:
// we need to insert a new account
Account *newAccount = [NSEntityDescription
insertNewObjectForEntityForName:[Account entityName]
inManagedObjectContext:self.managedObjectContext];
现在,我猜测有一些类MessageUI.framework
导致了冲突,但我有几个问题:
- 该应用程序编译并运行良好,没有编译时名称冲突
- 框架中的其他组件似乎是前缀命名空间(即:)
MFMailComposeViewController
,那么理论上的帐户不应该是MFAccount
吗? - 我什至没有做 an
#import <MessageUI/MessageUI.h>
或稍微紧一点#import <MessageUI/MFMailComposeViewController.h>
的 ,我检查了后者并没有看到 的定义Account
,所以我不确定为什么甚至会加载可能的冲突。 - 可以肯定的是,我重新生成了我的核心数据类,并重置了所有模拟器设置,仍然没有骰子。
- 从项目中删除框架并构建设置会立即解决问题。