小智 8
如果您使用的是键值而不是文档存储,我建议您使用此选项.
id iCloudToken = [[NSFileManager defaultManager] ubiquityIdentityToken];
if ( iCloudToken != nil) {
// User has enabled icloud in your app...
} else {
// Icloud is not enabled for your app...
}
Run Code Online (Sandbox Code Playgroud)
现在我推荐上述方法的原因是,在新的Xcode编译器中,您现在可以决定是否要使用文档存储.如果您选择仅使用键值存储,则NSFileManager检查将失败,因为您没有在权利中定义容器标识符.但是,如果用户允许您的应用运行,ubiquityIdentityToken将始终存在,这意味着如果用户允许您的应用访问iCloud,它将始终触发true或false.
请使用它来检查您的 iCloud 的状态是否已启用。
NSFileManager *fileManager = [NSFileManager defaultManager];
NSURL *iCloudURL = [fileManager URLForUbiquityContainerIdentifier:nil];
NSLog(@"%@", [iCloudURL absoluteString]);
if(iCloudURL){
NSUbiquitousKeyValueStore *iCloudStore = [NSUbiquitousKeyValueStore defaultStore];
[iCloudStore setString:@"Success" forKey:@"iCloudStatus"];
[iCloudStore synchronize]; // For Synchronizing with iCloud Server
NSLog(@"iCloud status : %@", [iCloudStore stringForKey:@"iCloudStatus"]);
}
Run Code Online (Sandbox Code Playgroud)
这会告诉你它是开/关:)
| 归档时间: |
|
| 查看次数: |
3724 次 |
| 最近记录: |