摘要:基本信息父类子类类含义调度类遵循的协议无属性无例子显示网络下载的图片这段代码会在后台线程立即发起一个请求,然后传递到主线程上更新发起请求信号传递方法介绍主线程调度当前队列调度这方法相当于执行了指定等级的异步并发队列,这个其实调用的是其中类
基本信息
父类 | NSObject |
---|---|
子类 | RACImmediateScheduler |
RACQueueScheduler | |
RACSubscriptionScheduler | |
RACTestScheduler | |
类含义 | RAC调度类 |
遵循的协议 | 无 |
属性 | 无 |
显示网络下载的图片
RAC(self.imageView, image) = [[RACSignal startEagerlyWithScheduler:[RACScheduler schedulerWithPriority:RACSchedulerPriorityBackground] block:^(idsubscriber) { NSError *error; NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://ww3.sinaimg.cn/bmiddle/7128be06jw1ei4hfthoj3j20hs0bomyd.jpg"] options:NSDataReadingMappedAlways error:&error]; if(error) { [subscriber sendError:error]; } else { [subscriber sendNext:[UIImage imageWithData:data]]; [subscriber sendCompleted]; } }] deliverOn:[RACScheduler mainThreadScheduler]];
这段代码会在后台线程立即发起一个请求,然后传递到主线程上更新UI
发起请求: + (RACSignal *)startEagerlyWithScheduler:(RACScheduler *)scheduler block:(void (^)(id
信号传递: - (RACSignal *)deliverOn:(RACScheduler *)scheduler
方法介绍+ (RACScheduler *)mainThreadScheduler;
主线程调度
+ (RACScheduler *)currentScheduler;
当前队列调度
+ (RACScheduler *)scheduler;
这方法相当于执行了[RACScheduler schedulerWithPriority:RACSchedulerPriorityDefault];
+ (RACScheduler *)schedulerWithPriority:(RACSchedulerPriority)priority;
指定等级的异步并发队列,这个其实调用的是
[[RACTargetQueueScheduler alloc] initWithName:name targetQueue:dispatch_get_global_queue(priority, 0)];
其中RACTargetQueueScheduler类的父类是RACQueueScheduler,而且RACQueueScheduler中有个方法是:
- (RACDisposable *)schedule:(void (^)(void))block { NSCParameterAssert(block != NULL); RACDisposable *disposable = [[RACDisposable alloc] init]; dispatch_async(self.queue, ^{ if (disposable.disposed) return; [self performAsCurrentScheduler:block]; }); return disposable; }
可以看到最终用的还是dispatch_async的异步调用
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/15590.html
阅读 2739·2021-11-22 15:25
阅读 2104·2021-11-18 10:07
阅读 910·2019-08-29 15:29
阅读 370·2019-08-29 13:25
阅读 1390·2019-08-29 12:58
阅读 3018·2019-08-29 12:55
阅读 2796·2019-08-29 12:28
阅读 370·2019-08-29 12:16