如何检测用户是否为我的应用启用了 iCloud?

问题描述 投票:0回答:2

我开发了一个支持 iCloud 的 iPhone 应用程序。 我面临的问题是,即使用户关闭我的应用程序的 iCloud 备份,它也会在 iCloud 上进行备份并反映我其他设备上的更改,所以我想知道如何才能让我的应用程序启用了 iCloud或不。

它专门针对应用程序而不是设备,如果设备启用了 iCloud,但我的应用程序已关闭,那么它不应该进行任何备份。

iphone ios ipad ios6 icloud
2个回答
11
投票

如果您使用键值存储而不是文档存储,我建议您使用此方法。

id iCloudToken = [[NSFileManager defaultManager] ubiquityIdentityToken];
if ( iCloudToken != nil) {
// User has enabled icloud in your app...
} else {
// Icloud is not enabled for your app...
}

现在我推荐上述方法的原因是,在新的 Xcode 编译器中,您现在可以决定是否要使用文档存储。如果您选择仅使用键值存储,则 NSFileManager 检查将失败,因为您不会在权利中定义容器标识符。但是,如果用户允许您的应用程序运行,则 ubiquityIdentityToken 将始终存在,这意味着如果用户允许您的应用程序访问 iCloud,它将始终触发 true 或 false。


3
投票

请用它来检查您的 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"]); 
}

这会告诉你它是开还是关:)

© www.soinside.com 2019 - 2024. All rights reserved.