我正在更新本地核心數據驅動的應用程序以支持iCloud。我預期的一個挑戰是圍繞着我所謂的「股票對象」 - 即應用程序首次啓動時提供的種子數據,99%的用戶將自定義。核心數據,iCloud和庫存對象
股票對象
Item A
Item B
定製對象
Tomatoes
Potatoes
然後,如果用戶啓動應用程序首次在新設備上,我覺得默認的行爲將是股票對象的重新創建將與iCloud持久存儲(項目A,項目B,西紅柿,土豆)中的定製對象合併,導致混亂y用戶體驗。
一種方法可能是在首次啓動時同步檢查iCloud數據,如果存在,則不要創建庫存對象。但是,用戶在第一次啓動時可能會脫機,然後在第二次啓動時,本地庫存對象與iCloud自定義對象發生相同的不良合併。
是否有方法將邏輯添加到iCloud合併中,以便來自雲(番茄和土豆)的自定義對象的到達可以指示我在刪除本地庫存對象(項目A和項目B)之前將其刪除?
謝謝!
嗯,我不確定我想用這個預付費麻煩用戶。另一個問題是,我需要以特殊方式處理完整的實體,其中包含完整的庫存對象。想象一下與Food實體有關的庫存FoodType對象(「肉」,「蔬菜」,「甜點」等)。即使它們的所有屬性都匹配,但如果它們是在不同設備的不同時間創建的,Core Data似乎將它們視爲不同。所以當合併發生時,突然間我有兩種「肉類」食物類型,一些食物與一個物體相連,另一些與另一個物體相連。 – ed94133 2011-12-24 21:42:09
我有類似的情況。我提供了有用的種子對象 - 他們中的大多數從來沒有變過。一個簡單的想法是添加一個布爾屬性'validated',並從那裏取出邏輯。然後,您可以檢查背景中的等同性和「合併」,而無需用戶注意。 – Mundi 2011-12-24 23:39:12