任何人都可以证实我的经验,这显示了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