我创建了一个基于导航的项目并检查了“使用核心数据” - 检查框。我可以从RootViewController插入新对象。我得到了第二个ViewController(SecondViewController),它将把文本字段中的数据添加到Core Data中,但我似乎找不到这样做的方法。
我尝试将相关代码(在项目创建时由Xcode生成的核心数据代码)从RootViewController添加到SecondViewController,但是由于“未捕获异常'NSInternalInconsistencyException',应用程序终止,原因'+ entityForName:无法找到NSManagedObjectModel对于实体名称'Event'“,其中”Event“是系统在创建项目时生成的实体。
代码几乎与您通过选中“使用核心数据” - 选中复选框创建基于导航的新项目所获得的代码完全相同。唯一的区别是当你点击“+” - 按钮时,你被带到另一个带有一个文本字段和一个按钮的ViewController。点击该按钮后,应该创建数据。
我可以上传代码,但Xcode会在检查“使用核心数据”时生成大量代码。生成项目可能更容易。
我有什么想法可以解决这个问题?提前谢谢! : - )
答案 0 :(得分:1)
将NSManagedObjectContext传递给SecondViewController。小心在主线程上执行插入/删除/更新,否则请查看如何处理线程和核心数据:http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdConcurrency.html%23//apple_ref/doc/uid/TP40003385-SW1