簡體   English   中英

iOS應用程序在設備設置頁面中禁用了iCloud驅動器並關閉了iCloud持久存儲

[英]iOS app disable iCloud drive(off) in device settings page and get iCloud persistentStore

我正在使用iCloud sync開發iOS應用。 我使用支持iCloud同步的核心數據存儲數據,然后,如果我在設備設置中關閉了iCloud驅動器,則我的應用程序無法讀取UbiquityContainer中的存儲數據。 現在,當用戶iCloud驅動器關閉時,我想將iCloud持久性存儲數據遷移到本地/其他地方。 但是我無法獲得iCloud持久性存儲。 我嘗試了以下不起作用的方法。

NSPersistentStore *result = [self.persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
                               configuration:nil
                                         URL:storeURL
                                     options:options
                                       error:nil];

結果是返回nil。 因為我無法獲得普遍存在的商店的精確storeURL。

 NSURL *iCloudURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:@"iCloud.com.Identifier"];

提供nil而不是url。關閉iCloud驅動器后是否有辦法獲取iCloud存儲。 因為我無法顯示存儲在數據中。

請參閱以下Apple文檔摘錄( https://developer.apple.com/library/ios/documentation/General/Conceptual/iCloudDesignGuide/Chapters/DesignForCoreDataIniCloud.html

為您的iCloud Core Data App設計啟動順序

當您采用iCloud時,在設計應用程序的啟動順序時要格外小心。 以下因素起作用,您必須考慮它們:

  • 用戶先前可能已經或未曾指示過偏好在您的應用程序中使用iCloud; 您應用的本地實例可能已經或可能尚未在普遍存在的容器中建立其初始存儲。

    作為啟動序列的第一步,請使用共享的NSUserDefaults對象讀取本地用戶默認數據庫。 在應用程序運行期間,使用該對象保存下次啟動時所需的用戶選擇。

  • 用戶可能會注銷iCloud或切換到另一個帳戶。

    如果用戶注銷iCloud或切換到另一個帳戶,則以前使用的帳戶的普遍存在的容器將不再對您的應用程序可用。

  • 本地核心數據存儲區可能比上的存儲區新或舊
    同一用戶擁有的另一台設備。

    在應用啟動期間,Core Data可能需要將本地存儲與iCloud的更改日志進行協調。 這可能涉及檢測和解決重復記錄和沖突。 測試至關重要。 要開始使用一些技巧,請參閱《 iCloud應用程序的測試和調試》以及《 iCloud核心數據編程指南》中的最佳實踐和故障排除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM