0

在任何人建议之前,我们使用一个 managedObjectContext[context save:&error];

我们正在使用 iOS5 在 Core Data 中保存一个新对象。

问题是,我们第一次保存一个新对象时,NSManagingContextDidSaveChangesNotification会触发并[[notification userInfo] objectForKey:NSUpdatedObjectsKey]返回一个未填充的对象。在 iOS6 中,objectForKey:NSUpdatedObjectsKey已填充。

之后当我们保存时objectForKey:NSUpdatedObjectsKey填充。

我们一直使用的上下文是[[UIApplication sharedApplication] delegate].mainDocument.managedObjectContext.

所以问题是,第一次[context save:&error]被调用,没有任何东西保存到数据库中。但是它已经被保存到对象中,所以下次[context save:&error]调用它会被放入数据库中。

有没有人有这方面的任何信息。我听说过 iOS5 中 CoreData 中的错误,所以如果有人有任何建议,我们将不胜感激。

4

1 回答 1

0

按给定顺序检查这些项目:

  • 确保第一次保存对象时已填充对象(例如 NSLog)。
  • 确保正确查询通知的 userInfo。
  • 确保此时物理数据库不包含正确的信息(例如通过sqlite3命令行工具)
  • 确保在检查对象是否已填充时输出正确的对象。
于 2013-05-02T13:50:56.383 回答