我有一个iCloud-CoreData可同步应用程序。我现在的目标是实现数据擦除。 我正在使用
+ (BOOL)removeUbiquitousContentAndPersistentStoreAtURL:(NSURL *)storeURL
options:(NSDictionary *)options
error:(NSError**)error
它完美地工作,从所有对等方删除所有数据,但问题是我无法在删除内容后立即开始使用无处不在的容器。这意味着在
之后+ (BOOL)removeUbiquitousContentAndPersistentStoreAtURL:(NSURL *)storeURL
options:(NSDictionary *)options
error:(NSError**)error
完成后我初始化新的核心数据堆栈。但是,在这个新堆栈中创建的新对象都不会发送给其他对等体。同步不再有效了。
任何假设我做错了什么?
任何人都可以在removeUbiquitousContentAndPersistentStoreAtURL
完成后立即告诉如何正确重新启动coredata堆栈吗?
在我致电removeUbiquitousContentAndPersistentStoreAtURL
之前,我正在使用[MagicalRecord cleanUp];
清理核心数据堆栈,以便在删除时不会保留商店
答案 0 :(得分:1)
我在Yosemite Mac应用和iOS8应用之间遇到了完全相同的问题。无论何时我从Mac应用程序中调用removeUbiquitousContentAndPersistentStoreAtURL
,iOS应用程序都不会与重置的商店同步。我尝试删除iOS应用程序,在设置中清除该应用程序的iCloud存储,重新启动OS X应用程序,没有运气。
我可以让它重新同步的唯一方法:让iOS应用程序也调用'removeUbiquitousContentAndPersistentStoreAtURL'方法。在每台设备(Mac和iOS)上调用此方法并重新启动后,同步将再次开始工作。
步骤:
之后两个应用都会正确同步。
PS:由于这不是一个真正的答案,而是更多的解决方法,我可以将其添加为评论,但没有足够的分数。不过,它可能是有用的信息。