如何使用RESTKit将一组对象发布到我的服务器?
我有一个名为Contact
的自定义对象,它有一些属性,如name
,phone
等。我想将这些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"
}
]