我使用iCloud在iOS上的设备之间同步特定的文档(UIDocument)。我的实现目前正在工作,但我很难了解更新文件的工作方式。这就是我目前的实现方式:
这些步骤将我的文档发送到iCloud,并且我能够在其他设备上看到该文件。我的问题是我如何更新一个文件?必须像上面那样构造一个新的UIDocument对象并保存和保存setUbiquitous吗?我用UIDocumentSaveForOverwriting作为UIDocument saveToURL中的保存操作进行了尝试,但是setUbiquitous调用失败了。我还试过简单地保存本地文件并在其他设备上查看元数据查询更新通知,但没有收到任何通知。如何对UIDocument进行更新,并将更改反映在iCloud中?
发布于 2012-10-22 23:38:08
您只需执行一次setUbiquitous调用;这只需将文件从本地存储复制到ubiquity容器(这是iOS用于将文件与云同步)。从那时起用于打开或保存文件的URL (如UIDocument saveToURL中的URL )应该是文件的URL,因为它存在于ubiquity容器中。
您可以使用如下代码获取无处不在容器的位置:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),^{
myobj.containerURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
});根据苹果的文档,您应该使用MetaDataQuery来获取URL的位置(因为,很明显,URL可以根据各种事件进行更改)。其中一个例子是在这个苹果样品里。
祝好运。)我已经为这些东西挣扎了几天.
https://stackoverflow.com/questions/12961105
复制相似问题