地图关注者/关注Restkit的关注

fde*_*ose 6 core-data objective-c ios restkit restkit-0.20

在我的核心数据项目中,我有一个User实体与followers/ following关系,目的地也是User实体.

为了得到给定的信息,user我用这种结构调用一个端点:user/:id/ 为了获取他followers/ following用户我打电话:/user/:id/followers

我已将以下路线添加到RKObjectManager:

[manager.router.routeSet addRoute:[RKRoute routeWithRelationshipName:@"followers" objectClass:[User class] pathPattern:@"user/:id/followers" method:RKRequestMethodGET]];

[manager.router.routeSet addRoute:[RKRoute routeWithRelationshipName:@"following" objectClass:[User class] pathPattern:@"user/:id/following" method:RKRequestMethodGET]];
Run Code Online (Sandbox Code Playgroud)

然后我打电话给:

[[RKObjectManager sharedManager] getObjectsAtPathForRelationship:@"followers" ofObject:user parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {

} failure:^(RKObjectRequestOperation *operation, NSError *error) {

}];
Run Code Online (Sandbox Code Playgroud)

但是RestKit无法执行映射.我想我失去了增加关系信息到RKEntityMapping了的User实体.我尝试了不同的方法但没有成功.我感谢你对这个问题的任何帮助.

更新

这是User实体映射:

RKEntityMapping *userMapping = [RKEntityMapping mappingForEntityForName:@"User" inManagedObjectStore:managedObjectStore];
    [userMapping addAttributeMappingsFromDictionary:@{
     @"id":                 @"id",
     @"name":               @"name",
     @"user_name":          @"username"}];
Run Code Online (Sandbox Code Playgroud)

和描述者:

[RKResponseDescriptor responseDescriptorWithMapping:userMapping
                                                  method:RKRequestMethodGET
                                             pathPattern:@"user/:id/followers"
                                                 keyPath:nil
                      statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]
Run Code Online (Sandbox Code Playgroud)

我想我应该在userMapping引用关注者/后续添加一些东西,但我还没能弄明白.谢谢.

Wai*_*ain 1

这似乎是 RestKit 中的一个限制/错误。您可能想在 RestKit github 页面的问题列表中提出这个问题。

mappingResult最简单的修复应该是使用和源对象中提供的项目连接成功块中的关系user