給大家介紹一個在ReactiveCocoa中經常使用的類,以及使用方法。
RACSiganl
使用的三個步驟:1.創建信號 2.訂閱信號 3.發送信號
//1.創建信號
RACSignal * signal = [RACSignal createSignal:^RACDisposable * _Nullable(id<RACSubscriber> _Nonnull subscriber) {
//3.發送信號
[subscriber sendNext:@"我是要傳遞的參數"];
return nil;
}];
//2.訂閱信號
[signal subscribeNext:^(id _Nullable x) {
NSLog(@"%@",x);
}];
源碼解析:
1.創建信號:createSignal:做的操作是返回帶有block(didSubscribe)的信號對象,類型為RACDynamicSignal。
2.訂閱信號:subscribeNext:保存block(nextBlock),并執行block(didSubscribe),同時將block(nextBlock)傳入block(didSubscribe)。
3.發送信號:block(didSubscribe)中調用sendNext:作用是執行block(nextBlock),并將傳的對象傳進去。
Snip20161221_9.png