允许Restkit为对象发送NULL值

时间:2014-08-15 15:58:01

标签: ios objective-c restkit

我正在尝试让RestKit为我PATCH对象服务器中的字段发送一个空值。

我有一个我发送的对象,我更改了请求中的assigned_to_id

{"request":{"title":"Asdad", "status":"open", "assigned_to_id": 4}}

requestNSManagedObjectassigned_to_idNSNumber

但是,当我想取消分配请求时,我会执行:

request.assigned_to_id = [NSNull NULL];

然后RestKit将请求发送为:

{"request":{"title":"Asdad", "status":"open"}}

它不包含assigned_to_id,因为它的值为NULL。有办法防止这种情况吗?我希望发送:

{"request":{"title":"Asdad", "status":"open", "assigned_to_id": null }}

===更新===

在做了一些初步研究之后,我发现你可以使用setDefaultValueForMissingAttributes,但它似乎并没有帮助,因为它还没有正确发送。

RKObjectMapping *updateMapping = [RKObjectMapping requestMapping];
updateMapping.setDefaultValueForMissingAttributes = YES;
updateMapping.setNilForMissingRelationships = YES;
[updateMapping addAttributeMappingsFromArray:@[@"title", @"assigned_to_id", @"status"]];

1 个答案:

答案 0 :(得分:0)

我不认为这是最好的解决方案,但是......

assigned_to_id默认值为0,因此当请求变为未分配时,我会发送以下PATCH请求:

{"request":{"title":"Asdad", "status":"open", "assigned_to_id": 0 }}

然后我使用API​​逻辑来取消分配请求。

如果有人想出如何使用参数NULL发送RestKit请求,请告诉我们!