ReactiveCocoa常見巨集

2021-09-11 10:58:04 字數 1208 閱讀 5085

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...