[英]How to detect if the user has iCloud enabled for my app?
我開發了支持iCloud的iPhone應用程序,但我遇到的問題是,即使用戶為我的應用程序關閉iCloud備份,它也會重新啟動iCloud並反映我的其他設備上的更改,所以我想知道如何我可以得到我的應用程序是否啟用了iCloud。
它專門用於App not for Device,如果設備啟用了iCloud,但我的應用程序已關閉,那么它不應該進行任何備份。
如果您使用的是鍵值而不是文檔存儲,我建議您使用此選項。
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。
請使用此選項檢查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"]);
}
這將告訴你它是否是ON / OFF :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.