[[self.mybutton rac_signalforcontrolevents:uicontroleventtouchupinside] subscribenext:^(id x) ];
複製**
[[self.mytextfield rac_textsignal] subscribenext:^(id x) ];
//distinctuntilchanged 相同就不會再響應 takeuntil:(racsignal *):獲取訊號直到某個訊號執行完成
[[[[self.mytextfield rac_textsignal] distinctuntilchanged] takeuntil:self.rac_willdeallocsignal] subscribenext:^(id x) ];
複製**
[[self.usermodel rac_valuesandchangesforkeypath:@"username"
options:nskeyvalueobservingoptionnew observer:nil] subscribenext:^(id x) ];
複製**
[[[[nsnotificationcenter defaultcenter] rac_addobserverforname:mptnotificationname object:nil] takeuntil:self.rac_willdeallocsignal] subscribenext:^(id x) ];
複製**
uialertview *alertview = [[uialertview alloc] initwithtitle:@"rac" message:@"rac test" delegate:self cancelbuttontitle:@"cancel" otherbuttontitles:@"other", nil];
[[self rac_signalforselector:@selector(alertview:clickedbuttonatindex:) fromprotocol:@protocol(uialertviewdelegate)] subscribenext:^(ractuple *tuple) ];
[alertview show];
// [[self rac_signalforselector:@selector(alertview:clickedbuttonatindex:)] subscribenext:^(id x) ];
//uialertview 還有更簡便的 上面只是為了演示rac_signalforselector 下面的x就是索引值
//如果使用此方法rac_signalforselector 不會再執行了。因為rac_buttonclickedsignal內部已經訂閱了rac_signalforselector方法
[[alertview rac_buttonclickedsignal] subscribenext:^(id x) ];
複製**
rac_liftselector
racsignal *request1 = [racsignal createsignal:^racdisposable *(idsubscriber) ];
racsignal *request2 = [racsignal createsignal:^racdisposable *(idsubscriber) ];
// 使用注意:幾個訊號,引數一的方法就幾個引數,每個引數對應訊號發出的資料。
[self rac_liftselector:@selector(updateuiwithr1:r2:) withsignalsfromarray:@[request1,request2]];
複製**
- (void)updateuiwithr1:(id)data r2:(id)data1
複製**
//then用法
//用於連線兩個訊號,當第乙個訊號完成,才會連線then返回的訊號
racsignal *thensignal=[asignal then:^racsignal *];
[thensignal subscribenext:^(id x) ];
//輸出 thensignal的值:7 thensignal的值:9 bsignal清理了 asignal清理了
//then例項
[[[[racsignal createsignal:^racdisposable *(idsubscriber) ] then:^racsignal *];
}] then:^racsignal *];
}] subscribecompleted:^];
//輸出:第一步 第二步 第三步
//說明:then的用法要跟上面這樣使用,它會在racsignal裡面就執行
複製**
[[[[racsignal createsignal:^racdisposable *(idsubscriber) ] donext:^(id x) ] docompleted:^] subscribenext:^(id x) ];
// 輸出
// 執行donext
// 執行subscribenext
// 執行sendnext
// 執行docompleted
複製**
ReactiveCocoa常見巨集
1 rac target,keypath,nil value 用於給某個物件的某個屬性繫結。只要文字框文字改變,就會修改label的文字 rac self.labelview,text textfield.rac textsignal reactivecocoa bindings rac self,...
ReactiveCocoa基本使用
reactiviecocoa的底層就不說明了。這裡就簡單介紹它的幾個基本使用場景。cocoapods匯入reactivecocoa5.0以上版本注意事項 1 如果你使用的是純swift工程,podfile檔案描述如下 use frameworks target 工程名稱 do pod reactiv...
ReactiveCocoa學習隨筆 一
self.usernametextfield.rac textsignal subscribenext id x 實現了動態監視textfield輸入的功能,一旦有輸入,就會執行 subscribenext bloc k,動態nslog textfield 所輸入的文字。self.usernamet...