跨设备正确处理 NSUbiquityKeyValueStore 更新?

Mic*_*old 6 objective-c ios icloud nsubiquitouskeyvaluestore

我的应用程序使用 NSUbiquityKeyValueStore(对象数组)在 iCloud 中存储单个键值对。当对数组中的任何对象进行更改时,整个数组都会保存到 iCloud。只要每个设备都有机会在本地进行更改之前下载最新更新,这种方法就非常有效。否则,在其他设备的最新更新被拉下来之前,本地更改可能会被推送到 iCloud,并且这些更新会在所有设备上丢失。这是我的应用程序的缺点还是 iCloud 的缺点,我该如何防止这种情况发生?

Hac*_*ack 0

我不确定我完全理解确切的问题,但我相信答案是 NSObject 上的一个类别(您可以有一个“版本”属性)来检查对象的“版本”,或者您需要另一个键值配对以存储在 iCloud 上的“版本”,可以与设备上本地存储的版本 (lastUpdateVersion) 进行比较,以了解您的情况。如果你能给我一个关于你的问题的确切的现实世界例子,我可以更好地回答......可能你甚至不需要一个“版本”,而是一个标志(BOOL)。