2017-05-25 81 views
1

從CoreData遷移到CloudKit並保留所有用戶數據的最佳方式是什麼?CoreData到CloudKit遷移

我想退休Core-Data並將其替換爲CloudKit,但用戶有大量重要數據,應該以某種方式進行遷移。 也有很多類正在使用CoreData實體,它們不應該受到影響(CRUD操作除外)。 沒有找到任何直接的指導方針。

我的解決辦法草案:

如果-check用戶CoreData

-load內存中的所有對象CoreData

-write他們雲

-remove CoreData文件

這是否會按預期工作?

在Core-Data刪除後使用從NSManagedObject繼承的類是可以的嗎? 它會導致任何副作用?

+0

請記住,CloudKit數據不可用於脫機使用。只有您有網絡連接時纔可用。 –

+0

謝謝!是的,這是一個問題....看起來像CloudKit是非常早期階段,但我不想使用Firebase等第三方工具。所以現在最好的解決方案是將CoreData與CloudKit同步? –

+0

是CloudKit(雲存儲)和CoreData(本地存儲)的用途完全不同,可能有助於CloudKit Basics。您必須構建自己的邏輯以將CoreData實體映射到CloudKit記錄類型。您確實有設施來存檔記錄的元數據(如更改標籤)。請參閱 - https://developer.apple.com/library/content/documentation/DataManagement/Conceptual/CloudKitQuickStart/Introduction/Introduction.html#//apple_ref/doc/uid/TP40014987-CH1-SW1瞭解基礎知識。然後觀看WWDC視頻。 – user1046037

回答

1

因此,CoreKit不能被CloudKit替換,因爲CloudKit不支持脫機模式。 我找到了庫來同步我的CoreData和CloudKit,它的工作方式和預期的一樣。 庫:https://github.com/mentrena/SyncKit

更新:甚至在發佈之前,SyncKit出現了多個問題,最終遷移到Firebase。在prod中正常工作。