Jag*_*gie 13 detect ios icloud nsubiquitouskeyvaluestore
我NSUbiquitousKeyValueStore用来将一些偏好数据同步到iCloud.我发现如果用户在"设置应用程序"中禁用iCloud的"文档和数据"项,NSUbiquitousKeyValueStore则无法将其数据同步到iCloud.所以,我想首先检查此设置是否已打开.我找到了这段代码片段:
NSURL *ubiq = [[NSFileManager defaultManager]
URLForUbiquityContainerIdentifier:nil];
NSLog(@"url=%@",ubiq);
if (!ubiq) {
UIAlertView *av = [[UIAlertView alloc] initWithTitle:nil message:@"Please enable iCloud in Setting app" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[av show];
return;
}
Run Code Online (Sandbox Code Playgroud)
我想知道的是,这是否是检测的唯一方法,即使我只是使用NSUbiquitousKeyValueStore(不是iCloud文档存储).还有更好的选择吗?
Jul*_*ien 13
基本上,NSUbiquitousKeyValueStore即使用户没有iCloud帐户(在这种情况下,NSUbiquitousKeyValueStore只是一个简单的本地存储),也始终可用.因此,一般情况下,如果配置了iCloud帐户,则无需询问自己或用户.
如果你真的想知道,在iOS 5中,唯一的解决方案就是你提到的解决方案.
我不知道文档是否已更新,但 Apple 现在说:
要确定 iCloud 是否可用,尤其是在启动时,请改为检查 ubiquityIdentityToken 属性的值
见的NSFileManager两个ubiquityIdentityToken和URLForUbiquityContainerIdentifier。
另请注意,Apple 表示这URLForUbiquityContainerIdentifier可能相对较慢,并且检查ubiquityIdentityToken相对较快。
这适用于 iOS6 及更高版本。
| 归档时间: |
|
| 查看次数: |
4889 次 |
| 最近记录: |