Ios 允许Restkit为对象发送空值
我正试图让RestKit发送一个空值,用于我正在修补到服务器的对象中的字段 我发送了一个对象,并在请求中将分配的\u更改为\u idIos 允许Restkit为对象发送空值,ios,objective-c,restkit,Ios,Objective C,Restkit,我正试图让RestKit发送一个空值,用于我正在修补到服务器的对象中的字段 我发送了一个对象,并在请求中将分配的\u更改为\u id {"request":{"title":"Asdad", "status":"open", "assigned_to_id": 4}} 请求是一个NSManagedObject,分配给\u的\u id是一个NSNumber 但是,当我想取消分配请求时,我会执行以下操作: request.assigned_to_id = [NSNull NULL]; 但是Res
{"request":{"title":"Asdad", "status":"open", "assigned_to_id": 4}}
请求是一个NSManagedObject,分配给\u的\u id是一个NSNumber
但是,当我想取消分配请求时,我会执行以下操作:
request.assigned_to_id = [NSNull NULL];
但是RestKit将请求发送为:
{"request":{"title":"Asdad", "status":"open"}}
它不包括分配给\u的\u id,因为它的值为空。有没有办法防止这种情况?我想让它发送:
{"request":{"title":"Asdad", "status":"open", "assigned_to_id": null }}
==更新===
在做了一些初步研究之后,我发现可以使用SetDefaultValueFormissingAttribute,但这似乎没有帮助,因为它仍然无法正确发送
RKObjectMapping *updateMapping = [RKObjectMapping requestMapping];
updateMapping.setDefaultValueForMissingAttributes = YES;
updateMapping.setNilForMissingRelationships = YES;
[updateMapping addAttributeMappingsFromArray:@[@"title", @"assigned_to_id", @"status"]];
我不认为这是最好的解决方案,但是 分配的_to_id默认值为0,因此如果请求变为未分配,我将发送以下修补程序请求: 然后我使用API逻辑使请求未分配
如果有人知道如何发送参数为NULL的RestKit请求,请告诉我 当然,您可以下载源代码并在那里更改行为,也可以使用单独的NSString属性,我猜RestKit正在使用getter,因此您可以尝试实现自己的getter for NSString属性,该属性将检查NSNumber值并返回空字符串或数字的文本表示形式。您控制服务器吗?因为你真的应该使用删除请求来处理这个…@Wain我确实控制了服务器,但我认为这里不需要删除请求。用户和请求的数据存储在桥接表中,但是,当有人更新请求时,不必发出两个请求—一个更新请求,一个可能删除受让人—发出一个请求更为合理,您只需将受让人设置为NULL,Rails为您处理该逻辑。我将在下面公布我现在决心要做的事情,尽管我认为这不是最好的解决方案。
{"request":{"title":"Asdad", "status":"open", "assigned_to_id": 0 }}