持久存储条目仍然存在,但重建时数据为空

时间:2012-05-14 12:55:36

标签: ios core-data persistent

我正在开发一个使用持久存储来保存和检索数据的应用程序。我已经完成了所有工作,但有一些奇怪的行为让我怀疑我正在做的事情是否正确。

当我构建我的App时,一些值被加载到持久性存储中并且可以被访问。当我在界面构建器中关闭应用程序然后重新加载它时,这仍然是正确的。

加载的数据在记录时看起来很像:

  

实体:任命;数据:{day = monday;小时= 8; project =   PROJECT1; task = task1; }

现在,在重建App时,商店中的条目仍然存在,但是,应该在这些条目中的数据似乎被销毁。

加载的数据现在看起来像:

  

实体:任命;数据:错误

我会假设商店完全重建,因此不会留下任何条目,或者它会在重建之前保持原样。

约会是在我的xcdatamodel中定义的NSManagedObject类,并且有四个字符串属性(日,小时,项目和任务)。

2 个答案:

答案 0 :(得分:1)

如果没有代码,很难看到发生了什么。你收到错误了吗?

数据:错误并不意味着你做错了什么。每次执行请求时,Core Data都不会检索整个对象,而是检索骨架。对象中的数据不会立即填充,但仅在您触发故障时(例如访问该实体的属性)。

因此,如果您以这种方式记录该对象:

NSLog(@"%@", managedObject);

这可能是其动机。

有关故障的更多信息,建议您阅读Faulting

希望它有所帮助。

答案 1 :(得分:0)

  1. 运行模拟器,然后在顶部菜单栏中选择iOS Simulator - > Reset Content & Settings...。它会重置您应用的所有数据,包括CoreData。

  2. 或者您可以转到~/Library/Application\ Support/iPhone\ Simulator/5.0/Applications,删除应用包。

  3. 或者只是删除xxx.sqlite中的~/Library/Application\ Support/iPhone\ Simulator/5.0/Applications/E88E378D-14A9-4900-A613-BF9082D4B2C1(YourAppBundle)/Documents/文件。

  4. 然后重建项目并运行它,立即清理数据。 ;)