ReactiveCocoa--RACScheduler
发布时间:2020-12-15 04:54:38 所属栏目:百科 来源:网络整理
导读:基本信息 父类 NSObject 子类 RACImmediateScheduler RACQueueScheduler RACSubscriptionScheduler RACTestScheduler 类含义 RAC调度类 遵循的协议 无 属性 无 例子 显示网络下载的图片 RAC(self.imageView,image) = [[RACSignal startEagerlyWithScheduler:
基本信息
例子显示网络下载的图片 RAC(self.imageView,image) = [[RACSignal startEagerlyWithScheduler:[RACScheduler schedulerWithPriority:RACSchedulerPriorityBackground] block:^(id <RACSubscriber> subscriber) { 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
方法介绍+ (RACScheduler *)mainThreadScheduler; 主线程调度 + (RACScheduler *)currentScheduler; 当前队列调度 + (RACScheduler *)scheduler; 这方法相当于执行了 + (RACScheduler *)schedulerWithPriority:(RACSchedulerPriority)priority; 指定等级的异步并发队列,这个其实调用的是 [[RACTargetQueueScheduler alloc] initWithName:name targetQueue:dispatch_get_global_queue(priority,0)]; 其中 - (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; } 可以看到最终用的还是 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |