【发布时间】:2011-01-19 11:27:53
【问题描述】:
我正在编写一个 iPhone 应用程序,它获取 XML 文件,对其进行解析,然后将解析后的对象保存到 Core Data。我已经完成了将对象保存到 Core Data 的所有工作。我想这与我引用 ManagedObjectContext 的方式有关,但我不知道哪里出错了。我看过SO question here,但我仍然很难过。我已经按照Core Data Tutorial for iPhone 进行了操作,但似乎在将我学到的知识应用到我自己的项目中时遇到了问题。我的应用在结构上与教程中的示例不同。
我的应用程序是一个具有三个子视图的 UITabBar,我们称它们为 A、B 和 C,以及一个单独的类文件,该类文件仅用于获取名为 XMLParser 的 XML。按下 ViewController 'C' 中的按钮即可调用此 XML 获取类。
当我解析 XML 时,我尝试将解析的对象即时保存到 Core Data。第一次尝试失败并出现以下错误:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason:
'+entityForName: could not locate an NSManagedObjectModel for entity name 'Branch''
在我的应用委托中,我有以下与我的 xmlparser 类相关的代码:
在 AppDelegate.m 文件的顶部
#import "XMLParser.h"
在 applicationDidFinishLaunching 内部
NSManagedObjectContext *context = [self managedObjectContext];
XMLParser *xmlparser = [[XMLParser alloc] init];
xmlparser.managedObjectContext = context;
[xmlparser release];
现在不要将大量代码粘贴到问题中,如果有人可以看到我到目前为止所写的内容,请询问更多代码或更好的解释。
编辑:我已经检查了this SO question 接受的答案中的所有内容,并且我已经配置了所有这些
谢谢
编辑
我现在意识到,因为我实际上是在按下 ViewController C 中的按钮时实例化一个 XMLParser 对象,所以在 applicationDidFinishLaunching 中设置的 managedObjectContext 不适用于新实例化的对象。那么,当我按下 ViewController 上的按钮后实例化它时,如何让 XMLParser 访问我的应用程序 ManagedObjectContext?
【问题讨论】:
标签: iphone cocoa-touch core-data