ReactiveCocoa操作方法-线程
deliverOn: 内容传递切换到制定线程中,副作用在原来线程中,把在创建信号时block中的代码称之为副作用。
subscribeOn: 内容传递和副作用都会切换到制定线程中
ReactiveCocoa操作方法-时间
timeout:
超时可以让一个信号再一定的时间后,自动报错
- (void)timeout { RACSignal *signal = [[RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) { return nil; }] timeout:1 onScheduler:[RACScheduler currentScheduler]]; [signal subscribeNext:^(id x) { NSLog(@"%@", x); } error:^(NSError *error) { //1秒后会自动调用 NSLog(@"error = %@", error); }]; /*结果:error = Error Domain=RACSignalErrorDomain Code=1 "(null)"*/ }
interval:
定时,每隔一段时间发出信号
- (void)interval { [[RACSignal interval:1 onScheduler:[RACScheduler currentScheduler]] subscribeNext:^(id x) { NSLog(@"%@", x); }]; }
delay:
延迟发送Next
- (void)delay { [[[RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) { [subscriber sendNext:@1]; return nil; }] delay:2] subscribeNext:^(id x) { NSLog(@"%@", x); }]; }