Objective c 使用RestKit上的POST请求排除某些参数

Objective c 使用RestKit上的POST请求排除某些参数,objective-c,restkit,restkit-0.20,Objective C,Restkit,Restkit 0.20,我刚刚将RestKit与Mac应用程序集成,用于与web服务通信。在经历了许多混乱之后,我成功地使用它获得了请求和响应 我现在发现的问题是,当我想提出POST请求时 我已经创建了一个RKRequestDescriptor,其中包含一系列属性的映射,所有属性都将作为查询的参数发送。我想要一种动态更改发送的参数的方法,例如,在属性为nil的情况下不发送某些参数 这是否可以作为RestKit内置功能的一部分?如果是,怎么做 您需要使用RestKit的动态映射类在运行时处理映射 RestKit通过RK

我刚刚将RestKit与Mac应用程序集成,用于与web服务通信。在经历了许多混乱之后,我成功地使用它获得了请求和响应

我现在发现的问题是,当我想提出POST请求时

我已经创建了一个RKRequestDescriptor,其中包含一系列属性的映射,所有属性都将作为查询的参数发送。我想要一种动态更改发送的参数的方法,例如,在属性为nil的情况下不发送某些参数


这是否可以作为RestKit内置功能的一部分?如果是,怎么做

您需要使用RestKit的动态映射类在运行时处理映射

RestKit通过RKDynamicMapping类支持此类用例。 RKDynamicMapping是RKObjectMapping的同级类,可以 添加到RKRequestDescriptor和RKResponseDescriptor对象并使用 配置RKMappingOperation实例。RKDynamicMapping允许您 连接到映射过程并确定适当的混凝土 要在每个对象的基础上使用的对象映射


或者您不能使用RestKit自己设置帖子主体。通过仅添加所需的参数来创建所需的字典。借助
NSJSONSerialization
序列化此对象,并在请求实例中将此
NSData
对象设置为HTTP主体

只是为了不发送nil参数?或者某种特定的排除逻辑?@GoodSp33d的答案涵盖了具体的排除。目前只排除nil参数,但以后可能会排除更复杂的内容。我想我在第一次阅读动态映射时误解了它的作用,因为文档中的示例显示了使用
addMatcher
,但我想我需要看一下
setObjectMappingForRepresentationBlock
。我会尝试一下,然后再给你回复。看起来它应该能解决问题。试过了,效果很好。允许将RKObjectMapping的创建推迟到运行时,这正是我想要的。