Xcode 7.2運(yùn)行沒(méi)問(wèn)題,如果有很多錯(cuò)誤入问,估計(jì)是ReactiveCocoa
的版本問(wèn)題
RACSiganl
:信號(hào)類(lèi),一般表示將來(lái)有數(shù)據(jù)傳遞,默認(rèn)是冷信號(hào)芬失,也就是值改變了,也不會(huì)觸發(fā)棱烂,只有訂閱了這個(gè)信號(hào),這個(gè)信號(hào)才會(huì)變?yōu)闊嵝盘?hào),值改變了才會(huì)觸發(fā)
RACSubscriber
:表示訂閱者的意思窜锯,用于發(fā)送信號(hào)
RACDisposable
:用于取消訂閱或者清理資源张肾,當(dāng)信號(hào)發(fā)送完成或者發(fā)送錯(cuò)誤的時(shí)候,就會(huì)自動(dòng)觸發(fā)它
// 1.創(chuàng)建信號(hào)
RACSignal *siganl = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
// 2.發(fā)送信號(hào)
[subscriber sendNext:@1];
// 如果不在發(fā)送數(shù)據(jù)吞瞪,最好發(fā)送信號(hào)完成,內(nèi)部會(huì)自動(dòng)調(diào)用[RACDisposable disposable]取消訂閱信號(hào)芍秆。
[subscriber sendCompleted];
return [RACDisposable disposableWithBlock:^{
// 執(zhí)行完Block后,當(dāng)前信號(hào)就不在被訂閱了翠勉。
NSLog(@"信號(hào)被銷(xiāo)毀");
}];
}];
// 3.訂閱信號(hào),才會(huì)激活信號(hào).
[siganl subscribeNext:^(id x) {
// block調(diào)用時(shí)刻:每當(dāng)有信號(hào)發(fā)出數(shù)據(jù),就會(huì)調(diào)用block.
NSLog(@"接收到數(shù)據(jù):%@",x);
}];