RestKit 2.0 getObjectsAtPathForRelationship:错误执行模式匹配

时间:2013-10-16 15:01:39

标签: json cocoa core-data restkit restkit-0.20

我对RestKit 2.0有点困惑。 我在CoreData上有一个User-Entity,它与ActionStream-Entity有关系 再次与行动实体建立关系。

用户关系one_to_one ActionsStream ActionsStream具有关系one_to_many Actions

当我登录用户时,我获得了一些数据和令牌,让我可以访问ActionStream。 所以我需要将Json Reponse映射到我的ActionsStream实体。

// Example Json ActionsStream with 2 Action items
{
   "total_count":2,
   "number_of_pages":2,
   "current_page":1,
   "items":[
      {
         "id":58606,
         "description":"dd "

      },
      {
         "id":58602,
         "description":"dd "

      }
   ]
}

我的行动& ActionStream映射很简单,但我会将其添加以供参考:

NSDictionary *mappingDict = @{  @"id" : @"id",
                                @"description" : @"description" };


NSDictionary *mappingDict = @{  @"total_count" : @"totalCount",
                                @"number_of_pages" : @"numberOfPages",
                                @"current_page" : @"currentPage"};

我希望按如下方式加载文件。

- (void)loadUserActionss:(User*)user{

RKObjectManager *objectManager = [RKObjectManager sharedManager];

[objectManager addResponseDescriptorsFromArray:@[
                                                 [RKResponseDescriptor responseDescriptorWithMapping:[ActivityStream entityMapping:objectManager.managedObjectStore]
                                                                                              method:RKRequestMethodAny
                                                                                         pathPattern:nil
                                                                                             keyPath:nil
                                                                                         statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]
                                                 ]];

[objectManager getObjectsAtPathForRelationship:@"actionSream"
                                ofObject:user
                                parameters:nil
                                    success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {

                                   NSLog(@"Success");

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

                                    NSLog(@"Failure");
                                }];

}

我得到的错误如下:
+ [RKPathMatcher pathMatcherWithPattern:] 'NSInternalInconsistencyException',原因:'模式字符串不能为空以执行模式匹配。'

我是RestKit的新手,所以任何指导都会有所帮助,包括我是否以正确的方式处理这种情况并且应该使用不同的方法。 谢谢。 人

1 个答案:

答案 0 :(得分:1)

您看到的错误是因为您使用的是getObjectsAtPathForRelationship方法,但是您没有给RestKit足够的信息来了解如何从服务器请求该信息。您可以通过以下两种方式之一提供信息:

  1. 调用方法时设置路径参数
  2. 创建一个RKRoute,其中描述了该关系名称的路径(路径)
  3. 您看到的错误('Pattern string must not be empty in order to perform pattern matching.')描述了这种缺乏信息。