【发布时间】:2014-05-18 03:40:44
【问题描述】:
我在将空 JSON 值映射到 Core Data 中的对象时遇到问题,这会导致错误。来自我的服务器的 GET 响应示例如下:
{
"status": "Success",
"result": {
"users": [
{
"id": 240,
"username": "user",
"fullName": "My Name",
"profilePicture": {
"id": 12,
"ownerID": "240",
"imageURL": "/photos/240/12",
}
},
{
"id": 241,
"username": "username",
"fullName": "Full Name",
"profilePicture": NULL
}
]
}
}
我已设置 RestKit 0.22.0 以将“profilePicture”的 JSON 值映射为 User 实体的关系(实体类型为 Photo)。 profilePicture 关系对于 User 实体是可选的。当数据库返回 NULL 值(也就是用户没有设置个人资料图片)时,就会出现问题。 RestKit 将创建一个所有属性都等于 nil 的新 Photo 实体,并将其设置为 User 实体的 profilePicture 关系。这给我带来了很多问题。如何防止 NULL 值被映射?
我尝试设置userMapping.assignsNilForMissingRelationships = YES,但这似乎不起作用。
编辑:我应该指出,当用户设置他们的个人资料图片时,一切都很好。只有当返回的 profilePicture 值为 NULL 时,我才会遇到问题。
更新:即使在更改 API 以在 NULL 时完全省略“profilePicture”键/值对后,RestKit 仍将 User 实体的 profilePicture 关系分配给 Photo 实体所有nil 属性。
【问题讨论】:
-
FWIW,现在 if(dict[@"profilePicture"]) 会给你你想要的结果,对吧?
-
@JoeBlow 是的,除了映射由 RestKit 自动处理。
-
很公平。我有点在“RestKit 现在是多余的”阵营中,伙计!
-
我同意。如果这个项目的截止日期不是那么快,我会完全删除 RestKit 并使用 AFNetworking 自己处理所有映射。 RestKit 似乎变得太“聪明”了。
标签: ios json core-data restkit restkit-0.20