使用反应可可处理链接请求的最佳实践

时间:2014-11-14 18:42:06

标签: ios objective-c afnetworking-2 reactive-cocoa

我是被动字样的新手,因此,请帮助找到针对此方案的最佳解决方案: 我使用 Youtube API。我想加载VideoCategories,然后为每个类别获取一个顶级视频,然后为每个视频加载缩略图,将其累积到模型中,然后仅将信号发送到表视图以重新加载数据。 我要求这样的类别:

[[[TRYoutubeManager manager] rac_GET:@"videoCategories" parameters:parameters] map:^id(id responseObject) {
    TRYoutubeListResponseModel *listModel =
    [MTLJSONAdapter modelOfClass:[TRYoutubeListResponseModel class] fromJSONDictionary:responseObject error:nil];
    listModel.items = [[listModel.items.rac_sequence filter:^BOOL(TRYoutubeVideoCategoryModel *categoryModel) {
      return categoryModel.assignable;

    }] array];
    return listModel;
  }];

那么,如何发送每个listModel.items的请求然后合并结果,然后发信号通知表视图?

1 个答案:

答案 0 :(得分:0)

好的,对于每个仍然怀疑的人。以更抽象的方式解释:

// You get your list ob objects here
[[[Manager getList] flattenMap:^RACStream *(NSArray *yourList) {
  NSMutableArray *listItemsSignals = [NSMutableArray array];
  for (ItemClass *item in yourList) {
    //Something that produces signals
    RACSignal *itemSignal = [item imageSignal];
    [listItemsSignals addObject: itemSignal]
  }

  return [RACSignal combineLatest:listItemsSignals];
}] subscribeNext:^(RACTuple *values) {
  // All your values are here
}];