【发布时间】:2017-04-18 15:47:27
【问题描述】:
我是 Swift 的新手,这就是为什么我是 Reactive Cocoa v5 或 Reactive Swift 的新手。
以前我在 RAC 2.x 中使用 RACSignal,我喜欢做这样的事情:
- (RACSignal *)signalForGET:(NSString *)URLString parameters:(NSDictionary *)parameters {
return [RACSignal createSignal:^RACDisposable *(id <RACSubscriber> subscriber) {
AFHTTPRequestOperation *op = [self GET:URLString parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
[subscriber sendNext:responseObject];
[subscriber sendCompleted];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
[subscriber sendError:error];
}];
return [RACDisposable disposableWithBlock:^{
[op cancel];
}];
}];
}
在这里我喜欢它取消一次性请求,我也可以通过在返回的信号上调用 dispose 方法手动取消它。
我对 Reactive Swift 中的所有这些东西有点困惑,比如 SignalProducers 等。
请举例说明如何使用最新的 Swift/ReactiveSwift/ReactiveCocoa 版本实现相同的功能。 主要要求是能够在任何我想要的地方取消请求(或处置信号),并在处置时自动取消请求
【问题讨论】:
标签: swift reactive-cocoa reactive racsignal reactive-swift