URLForUbiquityContainerIdentifier:当网络访问不可用时返回nil吗?

时间:2012-01-29 03:50:58

标签: iphone objective-c ios ipad ios5

当处于飞行模式或网络访问不可用的任何其他状态时,是否会调用NSFileManager的URLForUbiquityContainerIdentifier:返回nil?

对此的跟进问题是:如果对URLForUbiquityContainerIdentifier:的此调用不返回nil,而是在网络访问不可用时返回有效的URL,这是一种离线访问基于云的文档的方法吗?

apple docs表示如果未配置或未启用iCloud,则返回nil。它没有提到如果网络访问不可用会发生什么。

我会自己测试一下,但是根据我的理解,我必须在实际设备上进行测试,此时我无法在设备上进行测试。谢谢!

1 个答案:

答案 0 :(得分:5)

UbiquityContainer是一个本地存储容器,包含您从iCloud请求的文档。当网络没有时,此容器可用。通过使用以下示例

NSURL *ubiq = [[NSFileManager defaultManager] 
  URLForUbiquityContainerIdentifier:nil];
if (ubiq) {
    NSLog(@"iCloud access at %@", ubiq);
    // TODO: Load document... 
} else {
    NSLog(@"No iCloud access");
}

当手机处于飞行模式时,您将能够访问文件和普遍容器。当网络连接恢复时,icloud守护程序将自动同步文件,即使在后台也是如此。

这是一篇关于iCloud设置的精彩文章。 http://www.raywenderlich.com/6015/beginning-icloud-in-ios-5-tutorial-part-1