我是被动字样的新手,因此,请帮助找到针对此方案的最佳解决方案: 我使用 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
的请求然后合并结果,然后发信号通知表视图?
答案 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
}];