我们经常用GCD来在'subscribeNext'中切到主线程去操作UI
比如:
[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 信号类
[YourSignal deliverOn:[RACScheduler mainThreadScheduler]] subscribeNext:^(id x) {
} error:^(NSError *error) {
} completed:^{
}];
或者
[[YourSignal deliverOnMainThread] subscribeNext:^(id x) {
} error:^(NSError *error) {
} completed:^{
}];
网友评论