ios RAC 編程集

《RAC 簡單使用》

一、響應(yīng)式編程就是實(shí)時響應(yīng)某個事件

// 創(chuàng)建信號
RACSignal *signal = [RACSignal createSignal:^RACDisposable * _Nullable(id  _Nonnull subscriber) {
    NSLog(@"Hello");
    // 發(fā)送信號
    [subscriber sendNext:@"This is RAC"];
    return nil;
}];
// 訂閱信號
[signal subscribeNext:^(id  _Nullable x) {
    NSLog(@"%@",x);
}];

二、RAC很強(qiáng)大,一行代碼搞定以前的事件監(jiān)聽

舉幾個實(shí)際使用案例

  1. TargetAction轉(zhuǎn)Block

①UITextField(實(shí)時監(jiān)聽輸入框內(nèi)容)

[[self.textField rac_textSignal] subscribeNext:^(NSString * _Nullable x) {
    NSLog(@"%@", x);
}];

②UIButton(Button點(diǎn)擊事件)

[[self.button rac_signalForControlEvents:(UIControlEventTouchUpInside)] subscribeNext:^(__kindof UIControl * _Nullable x) {
    NSLog(@"%@",x);
}];
  1. 通知轉(zhuǎn)Block
[[[NSNotificationCenter defaultCenter] rac_addObserverForName:UIApplicationDidBecomeActiveNotification object:nil] subscribeNext:^(NSNotification * _Nullable x) {
    NSLog(@"%@",x);
}];

三、注意事項(xiàng):

RAC使用@weakify(self);和@strongify(self);來避免block循環(huán)引用

@weakify(self);
[[self.textField rac_textSignal] subscribeNext:^(NSString * _Nullable x) {
    @strongify(self);
    self.textField.text = @"Hello";
}];

文章系列
《RACSignal 》
《RACDisposable》
《RACSubject、RACReplaySubject》
《iOS RAC - 基本用法》
《iOS RAC - 定時器》
《iOS RAC - RACMulticastConnection》
《iOS RAC - RACCommand》
《iOS RAC - 核心方法bind》
《iOS RAC - 集合RACTuple、RACSequence》
《iOS RAC - rac_leftSelector》
《iOS RAC - 映射》
《iOS RAC - 過濾》
《iOS RAC - 登錄頁面,MVVM》

作者:Codepgq
鏈接:http://www.itdecent.cn/p/cd4031fbf8ff
來源:簡書
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容