如何使用RestKit指定关系?

时间:2013-03-02 18:14:38

标签: ios objective-c cocoa-touch rest restkit

我正在尝试使用RestKit将一些JSON映射到我的核心数据实体。

我有一个Case实体,其caseId属性与Binder实体名为binders的可选一对多关系。 Binder实体与名为Case的{​​{1}}具有一对一的关系,这不是可选的。

我可以成功映射case个实体,但我在映射Case个实体时遇到了问题。

我的映射设置如下:

Binder

我通过使用RKEntityMapping *caseEntityMapping = [RKEntityMapping mappingForEntityForName:@"Case" inManagedObjectStore:managedObjectStore]; [caseEntityMapping addAttributeMappingsFromArray:[@"caseId"]]; RKEntityMapping *binderEntityMapping = [RKEntityMapping mappingForEntityForName:@"Binder" inManagedObjectStore:managedObjectStore]; NSString *pathPattern = @"rest/case/list"; [router.routeSet addRoute:[RKRoute routeWithName:@"getCases" pathPattern:pathPattern method:RKRequestMethodGET]]; RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:caseEntityMapping pathPattern:pathPattern keyPath:@"data" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]; [_objectManager addResponseDescriptor:responseDescriptor]; pathPattern = @"rest/binder/list/:caseId"; [router.routeSet addRoute:[RKRoute routeWithRelationshipName:@"binders" objectClass:[PFCase class] pathPattern:pathPattern method:RKRequestMethodGET]]; RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:binderEntityMapping pathPattern:pathPattern keyPath:@"data" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]; [_objectManager addResponseDescriptor:responseDescriptor]; 获取案例,然后在成功块中,通过执行使用[_objectManager getObjectsAtPathForRouteNamed:@"getCases" object:nil parameters:nil success:… failure:…]创建的请求操作,获取每个案例的绑定器。

但是粘合剂没有映射结果。我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

我必须将一个外键RKConnectionDescription添加到binder实体映射中,这需要我为名为Binder的{​​{1}}实体创建一个新属性。

有没有办法在不创建新属性的情况下执行此操作?此外,什么是RKConnectionDescription的关键路径/何时需要它?