【发布时间】:2015-05-12 11:26:18
【问题描述】:
我有一个 json,其中包含每个对象都有子对象的对象,例如
[
{
"id": 1,
"name": "obj1"
},
{
"id": 2,
"name": "obj2"
},
{
"id": 3,
"name": "obj3",
"child": {
"id": 2,
"name": "obj2"
}
},
{
"id": 4,
"name": "obj4",
"child": {
"id": 5,
"name": "obj5"
}
}
]
因此,在核心数据中,我有实体 MyObject,它与子对象(与自身、一个)以及与父对象(与多个)相关
所以当我尝试通过谓词获取对象时
[NSPredicate predicateWithFormat:@"parent.@count = 0"]
我在 [1,3,4] 中只有 id 的对象,但没有 id = 2(这里是错误)和 id = 5(这里都是正确的)的对象,因为当它被映射时它被设置为父对象= 3 保存到数据库。
如果没有使用谓词,我得到 5 个对象,包括 obj5。
但我需要从 coredata 中获取我从 json 获得的对象的确切计数。
我只需要在 [1,2,3,4] 中获取 id 的对象。
如果可能,我需要如何编写谓词?
【问题讨论】:
-
所以您想获取顶级对象,而不是 JSON 中的嵌套项(这实际上与数据存储中哪些项是父项或子项无关)?
-
是的,只有顶级,但在 id=2 的基础对象中,现在作为第二级?
-
为什么错了,你没有得到 obj2?使用 obj3 将父对象添加到 obj2,因此它的父对象
count> 0 -
你不能在你当前的模型中预测它。您也许可以获得具有该详细信息的映射结果,甚至不确定,因为子项仍作为该键路径映射的一部分进行处理...为什么您需要顶级对象并且 JSON 中还有其他内容吗?
标签: ios objective-c json core-data restkit