【发布时间】:2014-01-25 11:06:25
【问题描述】:
在 Objective-c 中使用 Restkit。
我正在尝试像这样映射一个对象:
{
"key1":"key1", "key2":"key2", "key3":[{ "otherkey1":"otherkey1", "otherkey2":"otherkey2" }, { "otherkey1":"otherkey1", "otherkey2":"otherkey2" }, ]}
我正在做这样的事情:
RKObjectManager *objMan = [[RKObjectManager alloc] initWithHTTPClient: client];
RKObjectMapping *requestMapping = [RKObjectMapping requestMapping];
[requestMapping addAttributeMappingsFromArray:@[@"key1",
@"key2",
@"key3"]];
RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:requestMapping objectClass:[objContainer class] rootKeyPath:nil method:RKRequestMethodAny];
/**/
RKObjectMapping *requestMapping1 = [RKObjectMapping requestMapping];
[requestMapping1 addAttributeMappingsFromArray:@[@"otherkey1",
@"otherkey2",
]];
RKRequestDescriptor *requestDescriptor1 = [RKRequestDescriptor requestDescriptorWithMapping:requestMapping1 objectClass:[ContainerClient class] rootKeyPath:@"key3" method:RKRequestMethodAny];
RKObjectManager *manager = [RKObjectManager sharedManager];
[manager addRequestDescriptor:requestDescriptor];
RKObjectMapping *objMapping = [RKObjectMapping mappingForClass:[objContainer class]];
[objMapping addAttributeMappingsFromDictionary:@{
@"key1" : @"key1",
@"key2" : @"key2",
@"key3" : @"key3",
}];
/**/
RKObjectManager *manager1 = [RKObjectManager sharedManager];
[manager1 addRequestDescriptor:requestDescriptor1];
RKObjectMapping *objMapping1 = [RKObjectMapping mappingForClass:[ContainerClient class]];
[objMapping1 addAttributeMappingsFromDictionary:@{
@"otherkey1" : @"otherkey1",
@"otherkey2" : @"otherkey2",
}];
/**/
类 ContainerClient
@property (strong, nonatomic) NSNumber* otherkey1;
@property (strong, nonatomic) NSString *otherkey2;
类 objContainer
@property (strong, nonatomic) NSNumber* key1;
@property (strong, nonatomic) NSNumber* key2;
@property (strong, nonatomic) NSMutableArray* key3;
当它发送没有列表和工作的对象时,有类似这样的代码与服务器通信。 如何映射列表?
【问题讨论】:
-
您没有创建任何响应描述符。您是向服务器发送任何对象还是只是接收?
-
我发送,服务器填写返回。换句话说,它作为我发送的对象响应
-
所以你有发送的请求描述符。您需要接收的响应描述符。如果
key3应该包含ContainerClient的实例,那么您也需要一个关系映射。 -
我是怎么做到的?我如何进行关系映射?
标签: objective-c arrays mapping restkit