iOS的事件被包装成信号后,它会有三种形态出现:Next 下一步怎么做? Completed 完成后怎么做? error 发生错误后怎么做?
Block 是属于事件机制吗?
不是,Block是一段预先准备好的代码,什么时候被执行?我不知道! 和代理不一样,代理是约定好协议,调用方实现协议的方法,接收方在需要的时候,通知代理执行协议方法。
从上一篇导入后,初次尝试下:
//创建信号
//createSignal 点进去,看 源码 实际上是在里面会有创建信号 RACDynamicSignal 然后保存block DidSubscribe
RACSignal * signal = [RACSignal createSignal:^RACDisposable * _Nullable(id<RACSubscriber> _Nonnull subscriber) {
//subscriber 是一个block.如果订阅者信号代码块注视的话,那么这句话也不会执行。
NSLog(@"Here I am!");
// subscriber 订阅者,是一个block. //发送信号 [subscriber sendNext:@"This is RAC"];
return nil;
}];
//订阅信号. 创建订阅者,然后保存 block (next block ) 然后执行 didSubcribe
[signal subscribeNext:^(id _Nullable x) {
// x 是信号的内容
NSLog(@"x的内容是:%@",x);
}];
//信号三部曲的步骤:创建信号,订阅信号,发送信号。
//完整的流程: 源码里先创建了一个 RACDynamicSignal , 然后它保存了一个block 叫 DidSubScribe,创建完毕。
//然后订阅信号,创建订阅者,然后保存 block (next block ) 然后执行 didSubcribe
来源:oschina
链接:https://my.oschina.net/u/3619392/blog/4286707