我遇到了将空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值。作为Photo
实体的关系(实体类型User
)。 profilePicture
实体的关系User
是可选的。当数据库返回NULL值(用户未设置配置文件图片的AKA)时,会出现此问题。 RestKit将创建一个新的Photo
实体,其所有属性都等于nil,并将其设置为profilePicture
实体的User
关系。这给我带来了很多问题。如何防止映射NULL值?
我已尝试设置userMapping.assignsNilForMissingRelationships = YES
,但这似乎无效。
编辑:我应该指出,当用户设置了个人资料图片时,一切都很有效。当返回的profilePicture值为NULL时,我只会遇到问题。
更新:即使在更改API以省略" profilePicture"当NULL为空时,RestKit仍然将User
实体的profilePicture
关系分配给具有所有Photo
属性的nil
实体。
答案 0 :(得分:0)
即使在更改API以省略" profilePicture"当NULL为空时,RestKit仍然将用户实体的profilePicture关系分配给具有所有nil属性的Photo实体。
那应该是不可能的。如果密钥不在JSON中,则RestKit将不会执行任何工作或填充关系。
在任何情况下,KVC验证都是您要用于验证任何新创建的照片实体的内容,并在对象无效时中止处理。请参阅discardsInvalidObjectsOnInsert
。