核心数据无法保存NSManagedObjectContext

时间:2011-06-27 19:13:21

标签: objective-c cocoa-touch ios4 core-data

因此,我解析了一个xml并创建了一堆ManagedObjects,其关系类似于“User has_many Badges”,该应用程序可以使用刚刚解析的数据显示每个用户的配置文件。但是,如果我从多任务栏关闭应用程序并重新打开它。数据消失了。没有警告。我应该在哪里开始调试?谢谢。代码如下:  [self parseXML]; [appDelegate saveContext];

详细信息:以下是我创建核心数据模型的方法:我使用了xcode模板中的代码。每个用户都有许多徽章,但我没有从徽章到用户的反向关系。在我解析了xml并创建了带有徽章的所有用户之后,应用程序可以从上下文中提取数据并生成包含徽章和所有内容的配置文件视图。

问题:

从多任务栏关闭应用程序后,核心数据将存储所有用户属性,如项目和电话,徽章除外。徽章是一个单独的实体。感谢。

解决:在我建立反向关系后,问题自行解决了。如果我搞砸了其他代码,想不出其他原因可能会导致问题。

1 个答案:

答案 0 :(得分:1)

不是很多,但是:

如果Core Data对象图以各种方式工作,除了它不会保留数据,那么问题几乎必须在持久性存储本身的级别上。

(1)确保您没有内存中的持久性存储。正如其名称所暗示的那样,对于那种类型的商店没有任何持久性。对象图将起作用,上下文将执行保存操作但不会将任何内容写入磁盘。检查initWithPersistentStoreCoordinator:configurationName:URL:options方法以查看商店的类型和位置。

(2)让你没有把商店放在app目录的一个cache或tmp文件夹中。这些文件夹将被例行清除。

如果您刚刚使用Xcode模板中的样板来处理Core Data项目,则不应该遇到这些问题,因为模板会在Documents目录中创建一个sqlite持久性存储文件。