Ios RestKit请求映射-对象的Post数组
我正在尝试序列化响应正文中的SyncRewardDataRequestModel。“一个_id”序列化很好。但是,NSArray中的SyncRewardDataInputModel对象始终序列化为空NSArray。我已经确认我正在NSArray中传递正确的值-有人看到我的映射有什么不正确吗 课程:Ios RestKit请求映射-对象的Post数组,ios,objective-c,restkit,restkit-0.20,Ios,Objective C,Restkit,Restkit 0.20,我正在尝试序列化响应正文中的SyncRewardDataRequestModel。“一个_id”序列化很好。但是,NSArray中的SyncRewardDataInputModel对象始终序列化为空NSArray。我已经确认我正在NSArray中传递正确的值-有人看到我的映射有什么不正确吗 课程: @interface SyncRewardDataInputModel : NSObject @property (nonatomic,copy) NSNumber *test_id; @end @
@interface SyncRewardDataInputModel : NSObject
@property (nonatomic,copy) NSNumber *test_id;
@end
@interface SyncRewardDataRequestModel : NSObject
@property (nonatomic,strong) NSArray *syncRewardDataInputs;
@property (nonatomic,copy) NSNumber *an_id;
@end
以下是我的响应描述符:
//Populate mapping
RKObjectMapping *requestMapping = [RKObjectMapping requestMapping]; // objectClass == NSMutableDictionary
[requestMapping addAttributeMappingsFromDictionary:@{@"an_id": @"an_id"}];
RKObjectMapping *syncRewardDataInputsMapping = [RKObjectMapping mappingForClass:[SyncRewardDataInputModel class]];
[syncRewardDataInputsMapping addAttributeMappingsFromDictionary:@{@"test_id": @"test_id"}];
//Combine
RKRelationshipMapping *arrayRelation = [RKRelationshipMapping relationshipMappingFromKeyPath:@"syncRewardDataInputs" toKeyPath:@"downloadCardResponseDTOs" withMapping:syncRewardDataInputsMapping];
[requestMapping addPropertyMapping:arrayRelation];
//Put it in a request
RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:requestMapping objectClass:[SyncRewardDataRequestModel class] rootKeyPath:nil method:RKRequestMethodAny];
return requestDescriptor;
这一行:
RKObjectMapping *syncRewardDataInputsMapping = [RKObjectMapping mappingForClass:[SyncRewardDataInputModel class]];
应该是:
RKObjectMapping *syncRewardDataInputsMapping = [RKObjectMapping requestMapping];
因为对于一个请求,您总是试图映射到一个NSMutableDictionary
,以便从中生成JSON进行传输
通常,您会有一个用于接收数据的映射,链接到响应描述符,您可以在该映射上使用反向映射
,以生成用于请求描述符的映射。此行:
RKObjectMapping *syncRewardDataInputsMapping = [RKObjectMapping mappingForClass:[SyncRewardDataInputModel class]];
应该是:
RKObjectMapping *syncRewardDataInputsMapping = [RKObjectMapping requestMapping];
因为对于一个请求,您总是试图映射到一个NSMutableDictionary
,以便从中生成JSON进行传输
通常,您会有一个用于接收数据的映射,链接到响应描述符,您可以在此基础上使用
inverseMapping
来生成用于请求描述符的映射。因此,如果我想将所有映射都用作请求映射,我可以创建响应映射,然后调用反向映射?并非所有映射都可以反转,但通常是可以的(标准嵌套映射工作正常)非常感谢您向我解释:)因此,如果我想将所有映射用作请求映射,我可以进行响应映射,然后调用反向映射?并非所有映射都可以反转,但通常是可以的(标准嵌套映射工作正常)非常感谢您向我解释:)