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

我已经开发了一个启用了iCloud的iPhone应用程序,但我面临的问题是,即使用户closuresiCloud备份为我的应用程序,然后也取回了iCloud,并反映在我的其他设备的变化,所以我想知道如何我可以得到我的应用程序是否启用iCloud。 它专门为应用程序不为设备,如果设备是启用iCloud,但我的应用程序被closures,那么它不应该采取任何备份,请帮助我的家伙。

提前感谢。

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

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

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

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

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