【发布时间】:2013-10-16 15:01:38
【问题描述】:
我有点卡在 RestKit 2.0 上。 我在 CoreData 上有一个用户实体,它与 ActionStream-Entity 有关系 再次与 Action-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 "
}
]
}
我的 Action 和 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 的新手,所以任何指导都会有所帮助,包括我是否以正确的方式处理这种情况并且应该使用不同的方法。 谢谢你。 铝
【问题讨论】:
-
你有设置路由吗?你是如何教 RestKit 关于
activitySream关系以及如何导航它的?此外,您显示的映射不处理items。 -
路线:我没有意识到我需要设置路线。我需要这样做吗?我希望给出参数 getObjectsAtPathForRelationship:@"actionSream" 对 RestKit 来说就足够了。至于Items,我希望先做ActionStream,然后再担心动作。目前我只是得到错误。注意“Activity”就是“Actions”,这里只是做一个简单的例子。
标签: json cocoa core-data restkit restkit-0.20