我将iCloud同步添加到我的应用程序中。我的UIManagedDocument存储在沙箱中,它的更改日志在iCloud (由NSPersistentStoreUbiquitousContentURLKey指定)中。问题是,当我第一次在第二设备上安装和运行该应用程序时,进行初始同步需要很多分钟(以获取由第一个设备创建的更新)。这是一个真正的问题,因为这种同步显然发生在UIManagedDocument:saveToURL:completionHandler内部。因此,完成处理程序块需要很长时间才能被调用,如果在UIManagedDocument返回之前访问我的UIManagedDocument:saveToURL,我可以理解。
我想快速打开数据库、和,然后在后台进行同步。我该怎么做呢?
发布于 2013-10-03 16:12:35
是的,第二个设备上的初始同步可能需要90秒或更长时间(iOS 7)。我有一个iOS 7应用程序的开源示例,它创建了UIManagedDocument实例。见:https://github.com/DonBriggs/MultiDocumentPlusUUID。首先,查看在两个设备上运行的应用程序的屏幕截图。如果屏幕截图解决了您的问题,您可以自己尝试应用程序,并查看代码。我渴望得到反馈。
发布于 2012-05-19 05:54:08
你提到了“数据库”,并用CoreData标记了这个问题。但是,您所指的是UIManagedDocument,它的同步方式与CoreData数据库不同。如果您的数据库是CoreData,您将使用新的NSManagedObjectContext并发API初始化它。看一看:
[[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];我已经成功地使用它来异步同步CoreData数据库,但我不确定它应用于UIManagedDocuments有多好。
https://stackoverflow.com/questions/10645675
复制相似问题