1、rac(target, [keypath, [nil_value]]):用於給某個物件的某個屬性繫結。
// 只要文字框文字改變,就會修改label的文字
rac(self.labelview,text) = _textfield.rac_textsignal;
// reactivecocoa bindings
rac(self, title) = racobserve(self.viewmodel, name);
rac(self.viewmodel, name) = [cell.textfield.rac_textsignal takeuntil:cell.rac_prepareforreusesignal];
複製**
只有當cell的prepareforreuse被呼叫的時候,rac_textsignal才會被觸發,使用到了takeuntil。 2、racobserve(self, name):監聽某個物件的某個屬性,返回的是訊號。
[racobserve(self.view, center) subscribenext:^(id x) ];
@weakify(self);
[racobserve(self.viewmodel, model) subscribenext:^(id x) ];
複製**
3、@weakify(obj)和@strongify(obj),一般兩個都是配套使用,在主標頭檔案(reactivecocoa.h)中並沒有匯入,需要自己手動匯入,racextscope.h才可以使用。但是每次匯入都非常麻煩,只需要在主標頭檔案自己匯入就好了。
4、 ractuplepack:把資料報裝成ractuple(元組類)
// 把引數中的資料報裝成元組 ractuple *tuple = ractuplepack(@10,@20); 5、 ractupleunpack:把ractuple(元組類)解包成對應的資料。
// 把引數中的資料報裝成元組
ractuple *tuple = ractuplepack(@"xmg",@20);
// 解包元組,會把元組的值,按順序給引數裡面的變數賦值
// name = @"xmg" age = @20
ractupleunpack(nsstring *name,nsnumber *age) = tuple;
複製**
ReactiveCocoa開發中常見用法
7.1 代替 rac signalforselector 用於替代 self rac signalforselector selector userdidscroll tophotoatindex fromprotocol protocol frpfullsizephotoviewcontrolle...
ReactiveCocoa個人記錄
self.mybutton rac signalforcontrolevents uicontroleventtouchupinside subscribenext id x 複製 self.mytextfield rac textsignal subscribenext id x distinct...
ReactiveCocoa基本使用
reactiviecocoa的底層就不說明了。這裡就簡單介紹它的幾個基本使用場景。cocoapods匯入reactivecocoa5.0以上版本注意事項 1 如果你使用的是純swift工程,podfile檔案描述如下 use frameworks target 工程名稱 do pod reactiv...