【问题标题】:Should I need to update data manually after NSPersistentStoreDidImportUbiquitousContentChangesNotification我是否需要在 NSPersistentStoreDidImportUbiquitousContentChangesNotification 之后手动更新数据
【发布时间】:2013-11-18 08:09:44
【问题描述】:

我有问题。我正在编写一个使用核心数据并通过 iCloud 同步它的应用程序。收到更改后我是否需要在上下文中更新数据。我可以放弃收到的更改吗?

【问题讨论】:

    标签: core-data sync icloud


    【解决方案1】:

    当您收到NSPersistentStoreDidImportUbiquitousContentChangesNotification 时,已经收到传入的更改并将其保存到您的持久存储文件中。下一步做什么取决于你。

    我是否需要在收到更改后更新上下文中的数据

    如果您希望您的用户看到新的更改,那么可以。您可以使用mergeChangesFromContextDidSaveNotification: 来执行此操作。

    我可以放弃收到的更改吗?

    当您收到通知时,更改已被接收并保存。如果需要,您可以保存不同的值。不过,您无法告诉 iCloud 是否提交更改——它们已经存在了。

    【讨论】:

    • Tom 是对的,我的印象是您可以遍历通知中列出的对象并在调用 mergeChanges 之前删除(或更改)它们。因此,例如,如果有重复项,您可以在合并之前将其删除,这样重复项就不会显示在 UI 中。
    【解决方案2】:

    汤姆说的是真的。这些更改已经导入到持久存储文件中,但它们没有合并到实际的 PersistentContext 中,这就是 mergeChangesFromContextDidSaveNotification 所做的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 2016-04-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多