RACSubject,使用場(chǎng)景:回調(diào)傳值。
/**
?注意 RACSubject和RACReplaySubject的區(qū)別 RACSubject必須要先訂閱信號(hào)之后才能發(fā)送信號(hào), 而RACReplaySubject可以先發(fā)送信號(hào)后訂閱. RACSubject 代碼中體現(xiàn)為:先走TwoViewController的sendNext,后走ViewController的subscribeNext訂閱 RACReplaySubject 代碼中體現(xiàn)為:先走ViewController的subscribeNext訂閱,后走TwoViewController的sendNext 可按實(shí)際情況各取所需。
?RACSubject 在使用中我們可以完全代替代理進(jìn)行回調(diào)傳值。
?*/
- (IBAction)test:(id)sender {
? ? //發(fā)送信號(hào)
? ? [self.subject sendNext:@"發(fā)射數(shù)據(jù)"];
}
- (void)viewDidLoad {
? ? [super viewDidLoad];
? ? //創(chuàng)建信號(hào)
? ? self.subject = [RACSubject subject];
? ? //訂閱信號(hào)
? ? @weakify(self);
? ? [self.subject subscribeNext:^(id? _Nullable x) {
? ? ? ? // block:當(dāng)有數(shù)據(jù)發(fā)出的時(shí)候就會(huì)調(diào)用
? ? ? ? // block:處理數(shù)據(jù)
? ? ? ? @strongify(self);
? ? ? ? self.contentL.text= x;
? ? ? ? NSLog(@"%@",x);
? ? }];
}