RESTKit - 将大量对象发布到服务器

时间:2014-08-10 11:24:16

标签: ios restkit-0.20

如何使用RESTKit将一组对象发布到我的服务器?

我有一个名为Contact的自定义对象,它有一些属性,如namephone等。我想将这些Contact对象的数组发送到服务器。 我知道的方法是postObject:path:parameters:success:failure,但我放在这里的对象是什么?如果我放Contact - 它怎么知道它是一个数组?如果我放NSArray,它怎么会知道它是Contact

我的Contact对象标头文件是:

@interface Contact : NSObject

@property (strong, nonatomic) NSString *name;
@property (strong, nonatomic) NSString *phone;
@property (nonatomic) NSInteger order;
@property (strong, nonatomic) NSString *firstName;
@property (strong, nonatomic) NSString *lastName;

@end

我的回复映射是:

RKObjectMapping *personMapping = [RKObjectMapping mappingForClass:[Contact class]];
    [personMapping addAttributeMappingsFromDictionary:@{
                                   @"username": @"name",
                                   @"firstname" : @"firstName",
                                   @"lastname" : @"lastName",
                  }];

我的回复描述符是:

RKResponseDescriptor *personResponseDescriptorForArrayOfPhones =
[RKResponseDescriptor responseDescriptorWithMapping:personMapping
                                             method:RKRequestMethodANY
                                        pathPattern:@"getUsersInfoByPhones"
                                            keyPath:nil
                                        statusCodes:[NSIndexSet indexSetWithIndex:200]];

我的请求映射是:

RKObjectMapping *personRequestMapping = [RKObjectMapping requestMapping ]; 
    [personRequestMapping addAttributeMappingsFromDictionary:@{
                         @"name": @"username",
                         @"firstName" : @"firstName",
                         @"lastName" : @"lastName",
                         @"phone" : @"usernames"
              }];

我的请求描述符是:

RKRequestDescriptor *personRequestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:personRequestMapping
                                                                                     objectClass:[Contact class]
                                                                                     rootKeyPath:nil
                                                                                          method:RKRequestMethodAny];

这种实现看起来不错吗?

另外,我要发送到服务器的这个数组可能非常大,大约200-1000个对象。这可以用RESTKit吗?

更新:实际上,我希望发送一个字符串数组(可能是电话号码),并从服务器获取我拥有的Contact个对象。如何设置RESTKit以发布字符串数组并期望Contact个对象数组的响应?

我需要发送的json看起来像这样:

{
    "usernames":["11","22"]
}
我希望得到的json是:

[
  {
    "_id" : "53e23a54e811310000955f70",
    "profileUpdatesCounter" : 3,
    "lastname" : "SMITH",
    "firstname" : "BOB",
    "username" : "11"
  }
]

0 个答案:

没有答案