0

我正在开发一个使用持久存储来保存和检索数据的应用程序。我一切正常,但有一些奇怪的行为让我非常怀疑我所做的是否正确。

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

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

实体:任命;数据:{天=星期一;小时 = 8; 项目=项目1;任务=任务1;}

现在,在重建应用程序时,商店中的条目仍然存在,但是,这些条目中应该存在的数据似乎已被破坏。

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

实体:任命;数据:故障

我会假设商店要么完全重建,因此不会留下任何条目,要么它会保持重建前的原样。

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

4

2 回答 2

1

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

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

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

NSLog(@"%@", managedObject);

这可能是这样做的动机。

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

希望能帮助到你。

于 2012-05-16T10:47:24.357 回答
0
  1. 运行你的模拟器,然后在顶部菜单栏中,选择iOS Simulator-> Reset Content & Settings...。它将重置您的应用程序的所有数据,包括 CoreData。

  2. 或者你可以去~/Library/Application\ Support/iPhone\ Simulator/5.0/Applications,删除App bundle。

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

然后重建您的项目并运行它,现在清理数据。;)

于 2012-05-14T13:24:16.323 回答