使用RestKit创建子对象

时间:2014-01-05 17:56:48

标签: ios6 ios7 restkit restkit-0.20

我是RestKit的新手但到目前为止似乎有意义了,我为User对象设置了一些对象映射,如此

+ (NSArray *) responseDecriptorsForEntityMapping:(RKEntityMapping *)entityMapping
{
    NSDictionary *mappings = @{
                               @"id": @"userID",
                               @"firstName": @"forename",
                               @"lastName": @"surname",
                               @"phoneNumber": @"phone",
                               @"emailId": @"email",
                               @"uri": @"uri",
                               };

    [entityMapping addAttributeMappingsFromDictionary:mappings];
    [entityMapping setIdentificationAttributes:@[@"userID"]];
    // Setup response descriptors
    RKResponseDescriptor *getDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:entityMapping
                                                                                       method:RKRequestMethodGET
                                                                                  pathPattern:@"users/:userID"
                                                                                      keyPath:nil
                                                                                  statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];

    return @[getDescriptor];
}

从另一个类中调用它,该类设置对象管理器的映射。这工作正常,从服务器查询用户对象是有效的,所以这很好。

我现在想要的是创建一个子记录。我的User对象包含与devices的关系。我现在要做的是创建一个新的Device对象并将其插入到用户的devices集中。

有没有办法可以创建一个不需要我指定整个URL的映射(即/ users /:userID / devices),并让RestKit自动计算出来?

如果没有,那么没关系,我可以手动设置,但接下来第二个问题,创建对象的一般技术是什么,并将其放入集合中?我是否只是正常创建对象,然后一旦成功创建,只需使用普通的核心数据方法添加新设备,或者我可以配置RestKit为我这样做吗?

1 个答案:

答案 0 :(得分:0)

通常使用RKRoute来指定在使用指定的对象类创建特定类型(GET / POST / ...)请求时要使用的路径模式。路径检查对象以提取适当的参数以替换为路径模式。

配置路由后,只需POST对象,而不提供POST方法的路径。这会导致对象管理器搜索与类型和类标准匹配的路由,以便它可以构建所需的路径。

POST时,您可以自己创建对象,RestKit将使用收到的响应更新它,并将更新保存到上下文中。