RestKit:将多个属性映射到单个数组

时间:2014-06-19 11:11:06

标签: ios objective-c restkit

我有一个具有以下属性的Objective C类

@property(nonatomic, strong) NSString *name;
@property(nonatomic, strong) NSMutableArray *companies;
@property(nonatomic, strong) NSMutableArray *users;
@property(nonatomic, strong) NSMutableArray *tags;

这些数组是其他对象的集合(Company,User和Tag类的实例)。 我需要为POST请求创建一个 requestDescriptorWithMapping 将把所有数组成员放入一个名为params的成员中,并带有以下内容 结构:

{ name: "Test", 
  params: [
    {param:'company', values:['CompanyName1','CompanyName2'..],
    {param:'users', values:['UserName1','UserName2'..]
  ]
}

去哪里最好的方法是什么?我正在测试RKBlockValueTransformer但是 到目前为止没有成功。我可以通过创建三个NSMutableDictionaries手动创建这个数组,但想检查是否有更好的方法。

1 个答案:

答案 0 :(得分:1)

你可以这样做:

[@{ @"name": self.name, 
   @"params": @[
    @{@"param":@"company", values:[self.companies valueForKey:@"name"]}
    @{@"param":@"users", values:[self.users valueForKey:@"name"]}
  ]
} mutableCopy] 

假设您的公司和用户类具有名称属性。如果您不使用ARC,则需要自动发布mutableCopy

的结果