【发布时间】:2016-07-16 12:08:00
【问题描述】:
我有以下类和方法:
A类
- (RACSignal *)createX
{
NSDictionary *parameters = @{};
return [[[[HTTPClient sharedClient] rac_POST:@"X/" parameters:parameters]
map:^id(OVCResponse *response) {
[self logResponse:response];
return response.result;
}] catch:^RACSignal *(NSError *error) {
return [RACSignal error:[self handleError:error]];
}];
}
B类
- (void)requestData
{
[[self.myClassA createX]
subscribeNext:^(NSArray *results) {
DDLogDebug(@"response : %@", results);
}
error:^(NSError *error) {
[self.dataManager sendError:error];
}];
}
C类
- (void)retrieveData
{
[self.myClassB requestData];
}
在Class B 中设计requestData 以便results 数组可以在Class C 中访问的最佳方法是什么。
即
我应该使用[array rac_sequence] 以某种方式转发数组吗?
我应该在 requestData 中创建一个新信号,requestData 是否应该返回 RACSignal 而不是 void?
任何帮助或指导将不胜感激。谢谢。
【问题讨论】:
-
我不熟悉reactive-cocoa,但是你应该在retrieveData方法中添加一个block参数,当结果可用时调用。然后 C 类可以指定它想对结果做什么。
标签: ios objective-c functional-programming reactive-cocoa