首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在外壳响应覆盖的情况下自动映射到套筒模型类?

如何在外壳响应覆盖的情况下自动映射到套筒模型类?
EN

Stack Overflow用户
提问于 2015-05-07 20:13:05
回答 1查看 336关注 0票数 1

我使用mantle进行模型映射,使用overcoat来处理网络请求。大衣自动将结果映射到模型,但当有信封响应时,我能够获得自定义大衣响应。但问题是,大衣响应是NSCFDictionary响应,但它应该是MantleModel响应。

代码语言:javascript
复制
return [RACSignal createSignal: ^RACDisposable *(id<RACSubscriber> subscriber){
  [[client rac_GET:@"/services" parameters:@{@"location": @"lat,lng"}] subscribeNext:^( OvercoatResponse *response){
    NSArray *res = response.result;//res[0] is _NSCFDictionary object, but it should be MantleModel Object
    [subscriber sendNext:res];
  } error:^(NSError *error) {
    NSLog(@"ERROR: %@", error);
  }
   ];
  return nil;
}];

我知道如何手动将结果转换为mantleModel:

代码语言:javascript
复制
 NSArray *mtlnArray = [MTLJSONAdapter modelsOfClass:[MantleModel class] fromJSONArray:response.result error:&error];

但对我来说,这件事应该大功告成。我很好奇,不管怎么说,都是通过大衣来完成的,而不是手动改变结果。

EN

回答 1

Stack Overflow用户

发布于 2015-05-26 16:05:50

请参阅README.md

要指定如何将响应映射到模型类,您必须覆盖+modelClassesByResourcePath并返回一个将资源路径映射到模型类的字典。

示例:

代码语言:javascript
复制
// TwitterClient.h

@interface TwitterClient : OVCHTTPSessionManager

// TwitterClient.m

+ (NSDictionary *)modelClassesByResourcePath {
    return @{ @"statuses/*": [Tweet class],
              @"users/*": [TwitterUser class],
              @"friends/ids.json": [UserIdentifierCollection class],
              @"followers/ids.json": [UserIdentifierCollection class]};
}

当initWithBaseURL..时已自动设置P.S. responseSerializer,如果您再次重置,它可能会失败。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30100766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档