繁体   English   中英

如何在iPhone中设置iCloud根目录?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM