【发布时间】:2016-10-19 12:06:49
【问题描述】:
在我的应用程序中,我有一个下载管理器。完成任何任务后,我需要再次获取 tableView 的所有数据并重新加载。但我无法在RACObserve 信号中获取数据。这是我的代码。
NSArray *activeTasks = [[DownloadManager instance] tasksToProcess];
for (DownloadTask *task in activeTasks) {
[[[self
checkTask:task]
map:^(id value
return [self fetchDownloadedData];
}]
subscribeNext:^(NSArray *models) {
// models returns RACDynamicSignal not NSArray
NSLog(@"%@", models); // <RACDynamicSignal: 0x11611cb50> name:
NSLog(@"checktask next");
} completed:^{
// This is never being executed
NSLog(@"checktask completed");
}];
}
- (RACSignal *)checkTask: (DownloadTask *)task {
return [RACObserve(task, isFinished) map:^id(id _) {
return nil;
}];
}
- (RACSignal *)fetchDownloadedData {
return [[MyCoreDataModel fetchAll] flattenMap:^id(NSArray *models) {
// This is never being executed
return [models filter:^BOOL(MyCoreDataModel *model) {
return model.isDownloaded;
}];
}];
}
- (RACSignal *)fetchAll
{
return [[[MyCoreDataModel findAll] sortBy:@"title"] fetch];
}
如果有人帮助我找出我的错误在哪里,那就太好了。提前致谢。
【问题讨论】:
标签: objective-c reactive-cocoa