如何在 iPhone 中设置 iCloud Root?

Posted

技术标签:

【中文标题】如何在 iPhone 中设置 iCloud Root?【英文标题】:How to set iCloud Root in iPhone? 【发布时间】:2013-02-20 10:16:02 【问题描述】:

在这里我为文档存储创建了本地根目录,但我想实现 iCloud。所以我需要创建 iCloud 根目录,并且我会检查 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;
  

【问题讨论】:

【参考方案1】:

您可以使用以下方法找到 iCloud“根”目录:

NSURL *url = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];

如果您的应用只有一个 ubiquity 容器,则可以传递 nil 作为参数,否则必须传递容器标识符。

您还可以使用它来检查 iCloud 是否可用于您的应用程序 - 如果它返回 nil,则您不能使用 iCloud。不过,这不是检查可用性的最佳方法,因为它可能会阻塞一段时间。要进行快速、非阻塞检查,请使用以下命令:

id token = [[NSFileManager defaultManager] ubiquityIdentityToken];

然后一定要注意NSUbiquityIdentityDidChangeNotification,以防可用性发生变化。

但是:这还远远不足以开始使用 iCloud 存储文档。您不能只读取/写入该目录中的文件并让 iCloud 做正确的事情。您至少需要:

NSMetadataQuery 查找存在于云服务器上但未下载到本地的文档。 -[NSFileManager startDownloadingUbiquitousItemAtURL:error:] 告诉 iCloud 开始下载您通过元数据查询找到的文档。 通过NSFileCoordinator 协调访问,通过NSFilePresenter 通知更改。

Apple 有很多文档和来自 WWDC 的视频可以帮助解决这个问题。

【讨论】:

以上是关于如何在 iPhone 中设置 iCloud Root?的主要内容,如果未能解决你的问题,请参考以下文章

如何在iphone录音中设置电平表?

iphone:如何在 webView 中设置字体大小?

如何在iphone中设置选定日期的闹钟?

使用 100% CloudKit 和 SwiftUI 在应用程序中设置社交组件的流程?

如何在iphone中设置JSON post方法的格式

如何在 iPhone 锁屏中设置当前播放音频的标题?