objective-c – iOS – 核心数据模型与Mail Framework冲突?
我有一个Core Data对象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中有一些类导致冲突,但我有几个问题: >该应用程序编译并运行正常,没有编译时名称冲突 解决方法
我已经遇到过这种情况,这是一个确切的框架(这个类叫做Broadcaster).在这种情况下,私有Message框架由MessageUI链接,并且此框架提供Account实现.
您可以通过创建新项目来验证MessageUI框架是否加载了Account类,并在app delegate的应用程序中:didFinishLaunchingWithOptions:方法,添加以下代码: NSString *account = @"Account"; Class accountClass = NSClassFromString(account); NSLog(@"accountClass = %@",accountClass); 在一个新项目中,这将打印accountClass =(null),但在添加MessageUI后,它将打印accountClass = Account. 此外,如果您在私有Message框架上使用class-dump,您将看到Account的接口声明. 现在,您在帖子中列出了5个项目作为问题,我将尝试解决它们 >我对链接时间流程的了解不够了解 就行动而言,我只是将我的模型类重命名为前缀.我不知道任何其他解决方案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |