任何人都可以證實我的經驗,這顯示了NSFetchedResultsController不執行取如果一個nsmanagedobject映射包含identificationAttributes這個對象只是屬性的值被從更新JSON?如果NSManagedObject映射使用identificationAttributes然後NSFetchedResultsController不更新
我對Restkit的另一個問題是這個「identificationAttributes」特性的行爲。如果Restkit將把json數據映射到這樣一個(唯一的)核心數據對象,那麼它會查看是否已存在此nsmanaged對象的現有實例。但是,似乎此實例正在進行全局搜索,也就是說,具有此特定標識屬性的存儲中此特定nsmanaged對象只能有一個單一實例。我希望每個店鋪都有一個單獨的實例,但每個店主有(與此nsmanaged對象擁有父母關係)。
所以這個結構我希望(id是標識屬性值):
OwnerA/OwnerB和擁有是NSManagedObject的子類。所有映射使用所有類的identificationAttributes來保持它們的獨特性。
響應隨附: OwnerA:
第二響應隨附: OwnerB:
而是我從Restkit得到這個S tructure:
響應隨附: OwnerA:
第二響應來用: OwnerB:
但的OwnerA失去其對擁有關係(ID == X)
OwnerA:
作爲擁有此id的唯一單個實例== X由來自OwnerB的關係定義。
所以只有擁有id屬性的單個實例X。但是,如果這種獨特性是按每個所有者而不是全球來規定的,那將會更好。
與id屬性X如果斷言是使用與Owned.attributeValue語句不被NSFetchedResultsController事件註冊的國有此外更新== ... NSPredicate是無用的檢測關係的變化。我知道,但它也不會檢測nsmanagedobjects中的更改,如果此類對象正在使用identificationAttributes。
感謝您的評論。
謝謝你的評論。 「(你沒有辦法指定所有者可能是什麼)」 那麼逆關係呢? –
我認爲這確實限制了障礙。是的,我瞭解該工具包已準備好爲一些常見問題提供服務。但是,將這種「識別特性」特徵暴露給全球範圍實在令人困惑。我從第一次使用Restkit開始就測試了這個功能,但我仍然希望使用訪問器以某種方式調整映射,而沒有使用Restkit功能。它甚至沒有在文檔中提到這個特性的範圍是什麼.http://restkit.org/api/0.20.0-pre2/Classes/RKEntityMapping.html使用這個特性改變了映射數據的結構,這是不好的。 –
我的意思是你沒有辦法告訴RestKit一個對象的所有者。你會告訴它關於多種不同的實體類型和相關的標識屬性......如果它被稱爲唯一標識屬性會更好,因爲它旨在用於全球唯一標識。 – Wain