问题是当值为 nil 时,我需要从有效负载中完全删除属性 @"unitprice",但如果它在请求中有值,则将其保留在那里。因此,OrderLine 的有效负载应如下所示{"id""orderlineId", @"unitprice""unitprice"} OR @{"id""orderlineId"} 请注意,映射是一对多的关系。是否有可能做到这一点?非常感谢您的帮助,谢谢!
/*
请求描述符
*/
+(RKObjectMapping*) getSalesOrderMappingRKRequestMethod)method {
RKEntityMapping *requestMapping = [RKEntityMapping mappingForEntityForName"SalesOrder"
inManagedObjectStore:[RKManagedObjectStore defaultStore]];
RKEntityMapping *orderLinesMapping = [RKEntityMapping mappingForEntityForName"OrderLine"
inManagedObjectStore:[RKManagedObjectStore defaultStore]];
requestMapping.identificationAttributes = @[ @"salesOrderId" ];
NSMutableDictionary *attributeMappings = [NSMutableDictionary dictionaryWithDictionary{
@"id": @"salesOrderId",
}];
NSDictionary *orderLineAttributeMappings = @{
@"id": @"orderlineId",
@"unitprice": @"unitPrice"
};
[orderLinesMapping addAttributeMappingsFromDictionaryrderLineAttributeMappings];
[requestMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath"lines"
toKeyPath"salesOrderToOrderLines"
withMappingrderLinesMapping]];
return requestMapping;
}
Best Answer-推荐答案 strong>
在映射上将 assignsDefaultValueForMissingAttributes 设置为 NO 。您不需要 2 个不同的映射(除非您确实想在 JSON 中包含 nil 的某些属性)。
关于ios - RestKit - 从 RKRequestDescriptor 中排除具有 nil 值的属性映射,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/24443606/
|