[英]How to set iCloud Root in iPhone?
在这里,我创建了用于文档存储的本地根目录,但是我想实现iCloud.so,因此我需要创建iCloud Root,并且我还将检查iCloud是否可用。 如果有可能创建类似方法。 在这里,我添加了本地根方法代码
- (NSURL *)localRoot {
if (_localRoot != nil) {
return _localRoot;
}
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *artdirectoryPath = [documentsDirectory stringByAppendingPathComponent:@"/Me"];
_localRoot=[[NSURL alloc]initFileURLWithPath:artdirectoryPath];
return _localRoot;
}
您可以使用以下命令找到iCloud“根”目录:
NSURL *url = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
如果您的应用只有一个普遍存在的容器,则可以为参数传递nil
,否则必须传递容器标识符。
您还可以使用它来检查iCloud是否可用于您的应用程序-如果返回nil
,则不能使用iCloud。 但是,这并不是检查可用性的最佳方法,因为它可能会阻塞一段时间。 为了快速进行无阻塞检查,请使用以下命令:
id token = [[NSFileManager defaultManager] ubiquityIdentityToken];
然后,请确保遵守NSUbiquityIdentityDidChangeNotification
,以防可用性发生变化。
但是:这远远不足以开始将iCloud用于文档。 您不能只读取/写入该目录中的文件并让iCloud做正确的事。 至少需要满足以下条件:
NSMetadataQuery
查找云服务器上存在但未本地下载的文档。 -[NSFileManager startDownloadingUbiquitousItemAtURL:error:]
告诉iCloud开始下载通过元数据查询找到的文档。 NSFileCoordinator
协调访问,并通过NSFilePresenter
进行更改通知。 苹果有很多文档,以及来自WWDC的视频将对此有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.