我是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为我这样做吗?
答案 0 :(得分:0)
通常使用RKRoute
来指定在使用指定的对象类创建特定类型(GET / POST / ...)请求时要使用的路径模式。路径检查对象以提取适当的参数以替换为路径模式。
配置路由后,只需POST对象,而不提供POST方法的路径。这会导致对象管理器搜索与类型和类标准匹配的路由,以便它可以构建所需的路径。
POST时,您可以自己创建对象,RestKit将使用收到的响应更新它,并将更新保存到上下文中。