防止将空JSON响应映射到RestKit 0.22.0

时间:2014-05-18 03:40:45

标签: ios json core-data restkit restkit-0.20

我遇到了将空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实体。

1 个答案:

答案 0 :(得分:0)

  

即使在更改API以省略" profilePicture"当NULL为空时,RestKit仍然将用户实体的profilePicture关系分配给具有所有nil属性的Photo实体。

那应该是不可能的。如果密钥不在JSON中,则RestKit将不会执行任何工作或填充关系。

在任何情况下,KVC验证都是您要用于验证任何新创建的照片实体的内容,并在对象无效时中止处理。请参阅discardsInvalidObjectsOnInsert