RAC可以实现KVO、代理、通知、block的功能,可谓集多功能于一身。本篇文章介绍RAC是如何代替block传值的。
我们使用RACSubject这个来进行信号的发送和信号的订阅,RACSubject这个类是继承自RACSignal的。
看代码
发送信号:
- (RACSubject *)subject {
if (!_subject) {
_subject = [RACSubject subject];
}
return _subject;
}
// 发送信号
UIColor * randomColor= [UIColor colorWithRed:((float)arc4random_uniform(256) / 255.0) green:((float)arc4random_uniform(256) / 255.0) blue:((float)arc4random_uniform(256) / 255.0) alpha:1.0];
[self.subject sendNext:randomColor];
订阅信号:
[btn.subject subscribeNext:^(id _Nullable x) { // 订阅信号
self.view.backgroundColor = x;
}];
网友评论