【问题标题】:RestKit Request Mapping - Post Array of objectsRestKit 请求映射 - 发布对象数组
【发布时间】:2014-08-04 03:51:48
【问题描述】:

我正在尝试在我的响应正文中序列化 SyncRewardDataRequestModel。 "an_id" 可以很好地序列化。但是,NSArray 中的 SyncRewardDataInputModel 对象总是序列化为一个空的 NSArray。我已经确认我在我的 NSArray 中传递了一个正确的值 - 有人看到我的映射有什么问题吗?

类:

@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;

【问题讨论】:

    标签: ios objective-c restkit restkit-0.20


    【解决方案1】:

    这一行:

    RKObjectMapping *syncRewardDataInputsMapping = [RKObjectMapping mappingForClass:[SyncRewardDataInputModel class]];
    

    应该是:

    RKObjectMapping *syncRewardDataInputsMapping = [RKObjectMapping requestMapping];
    

    因为对于请求,您总是试图映射到 NSMutableDictionary,以便可以从中生成 JSON 进行传输。

    您通常会有一个用于接收数据的映射,链接到响应描述符,您可以在其上使用inverseMapping 来生成用于您的请求描述符的映射。

    【讨论】:

    • 所以如果我想将它们用作请求映射,我可以制作我所有的 Mappings 响应映射,然后调用反向映射?
    • 并非一切都可以反转,但通常可以(标准嵌套映射工作良好)
    • 非常感谢您向我解释这个:)
    猜你喜欢
    • 1970-01-01
    • 2017-12-15
    • 1970-01-01
    • 2017-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    相关资源
    最近更新 更多