如何在iPhone中设置iCloud根目录?
在这里,我为文档存储创建了本地根目录,但我想实现iCloud。因此,我需要创建iCloud根目录,并且我将检查iCloud是否可用。如果有可能创建类似的方法。这里我添加了我的本地根方法代码如何在iPhone中设置iCloud根目录?,iphone,ios6,icloud,Iphone,Ios6,Icloud,在这里,我为文档存储创建了本地根目录,但我想实现iCloud。因此,我需要创建iCloud根目录,并且我将检查iCloud是否可用。如果有可能创建类似的方法。这里我添加了我的本地根方法代码 - (NSURL *)localRoot { if (_localRoot != nil) { return _localRoot; } NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUse
- (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“root”目录:
NSURL *url = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
如果您的应用程序只有一个ubiquity容器,则可以为参数传递nil
,否则必须传递容器标识符
你也可以用它来检查你的应用程序是否可以使用iCloud——如果它返回nil
,你就不能使用iCloud。但这不是检查可用性的最佳方法,因为它可能会阻塞一段时间。要进行快速、非阻塞检查,请使用以下方法:
id token = [[NSFileManager defaultManager] ubiquityIdentityToken];
然后确保遵守NSUbiquityIdentityDidChangeNotification
,以防可用性发生变化
然而,这还远远不足以开始在文档中使用iCloud。你不能只是读/写那个目录中的文件,然后让iCloud做正确的事情。您至少需要:
查找云服务器上存在但未在本地下载的文档NSMetadataQuery
-[NSFileManager startdownloadingubiquitousitemature:error://告诉iCloud开始下载您通过元数据查询找到的文档
- 通过
协调访问,并通过NSFileCoordinator
通知更改NSFilePresenter