7

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

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

4

2 回答 2

9

如果您使用的是键值而不是文档存储,我建议您使用它。

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。

于 2014-06-03T06:09:50.207 回答
2

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

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

于 2013-02-26T06:52:00.010 回答