2013-10-02 193 views
0

我有一個關於icloud存儲在iOS7核心數據存儲的問題。在蘋果WWDC大會上,有人提到可以在沙盒中創建核心數據存儲,當應用開始接收icloud的響應時,核心數據存儲中的更改將合併到icloud存儲中。本地核心數據存儲與icloud

現在,(我可能是錯的),但會議進一步提到,一旦應用程序切換到icloud商店,本地核心數據存儲將被刪除。所以,我的問題是,本地核心數據存儲可以與iOS7中的icloud存儲共存(以便用戶可以使用數據脫機工作)?是否有任何示例代碼?

回答

1

在iOS 7中,核心數據框架負責管理本地存儲,直到iCloud存儲安裝並可用。該模式也適用於應用程序處於脫機狀態,並且在應用程序脫機時不會刪除任何數據(只需在開發中對應用程序進行雙重檢查)。

在另一種情況下,iCloud商店將被刪除。這是在iCloud用戶帳戶發生更改的情況下,相應的iCloud存儲文件將被刪除。在這種情況下,有一個新的API NSPersistentStoreCoordinatorStoresWillChangeNotification,允許您在商店變得不可用之前存儲未保存的數據。如果用戶稍後使用同一帳戶登錄,則會從iCloud恢復數據(有關詳情,請參閱WWDC 2013會話207視頻)。

至於示例代碼,目前還沒有。在開發者論壇上有iCloud sample code shared by AppleSpaceMan,這是我作爲一個基地,並很好地工作。

0

只要您有iCloud帳戶並登錄到該帳戶,就可以與iCloud存儲脫機工作(無網絡連接)。我剛纔已經發布,其中包括以下功能的示例應用程序:

  • 使用本地的iCloud核心數據存儲
  • 包括一個設置捆綁(注這會在Settings App中創建一個設置頁面),其中包括:
    • 使用的iCloud偏好設置(ON或OFF)
    • 製作備份偏好設置(ON或OFF)
    • 顯示應用程序版本號
  • 提示用戶關於存儲選項使用iCloud優選的是改變爲ON
  • 遷移核心數據存儲和從iCloud中根據用戶的偏好設置和響應於提示
  • 檢測的iCloud商店的缺失從另一設備和通過清理當遷移到iCloud本地存儲,並提示用戶是否在本地存儲如果IC合併或丟棄數據創建一個新的空的iCloud儲存
  • 檢查現有的iCloud文件響亮的文件是否存在,如果製作備份首選項設置爲ON
  • 使備份核心數據存儲的。備份文件名爲persistentStore_Backup_yyyy_MM_dd_HH_mm_ss。要使用它:
    • 設置備份首開和下一次應用程序被激活,它將使當前核心數據存儲的備份和恢復的優先選擇OFF
    • 文件可以從iTunes複製到PC或Mac
    • 恢復只需設置應用程序來使用本地文件(使用iCloud的偏好OFF)並更換persistentStore文件,所需備份文件(注意該文件必須命名爲 persistentStore)。
    • 來,然後通過iCloud的共享恢復的文件再次打開使用iCloud的偏好並運行應用程序

http://ossh.com.au/design-and-technology/software-development/sample-library-style-ios-core-data-app-with-icloud-integration/