我有以下类和方法:ReactiveCoca设计模式的转发/链接信号
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];
}
什么是设计的最佳方式requestData
in Class B
,使得可以在Class C
中访问results
阵列。
即
我应该转发阵列使用[array rac_sequence]
某种程度上, 我应该创建内部的RequestData一个新的信号,应requestData
返回的RACSignal
代替void
?
任何帮助或指导将不胜感激。谢谢。
我不熟悉reactive-cocoa,但是您应该在retrieveData方法中添加一个block参数,当结果可用时调用它。 C类然后可以指定它想要对结果做什么。 – fishinear