我们经常用GCD来在’subscribeNext’中切到主线程去操作UI
比如:
1 2 3 4 5 6 7 8 9 10 11 |
[YourSignal subscribeNext:^(id x) { dispatch_async(dispatch_get_main_queue(), ^{ //TODO 显示成功 }); } error:^(NSError *error) { dispatch_async(dispatch_get_main_queue(), ^{ //TODO 显示失败 }); } completed:^{ }]; |
其实RACSignal ‘deliverOn’ 可以直接切入主线程
而且有2种写法:
返回的都还是 RACSignal 信号类
1 2 3 4 5 6 7 |
[YourSignal deliverOn:[RACScheduler mainThreadScheduler]] subscribeNext:^(id x) { } error:^(NSError *error) { } completed:^{ }]; |
或者
1 2 3 4 5 6 7 |
[[YourSignal deliverOnMainThread] subscribeNext:^(id x) { } error:^(NSError *error) { } completed:^{ }]; |