2017-12-27

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 初學RAC(一)

一:簡單介紹RAC

RAC全稱ReactiveCocoa,,RAC是Github上由19人團隊開發(fā)的重量級開源框架督怜,它有四大家族炉奴,分別為Cocoa,objc(OCx項目盡量使用它),swift(純Swift也少使用它谦铃,很難用),Bridge(OC和swift使用他)。可以在日常開發(fā)中簡單粗暴的幫開發(fā)者處理事件士嚎,這些事件常見的有(Target,Delegate,KVO,通知篱竭,時鐘毙籽,網(wǎng)絡異步回調(diào)等)路狮。


二:基于OC語言通過cocopods配置RAC

1.創(chuàng)建一個項目虫啥,我自己命名為RACDemo

2.打開MAC終端配置RAC


三:RAC框架的簡單使用

1:在上寫法之前,我們先看RAC的流程圖奄妨,如下

2.RAC的中RACSingal的兩種寫法

(1)初級寫法


2:裝逼寫法


四:RAC監(jiān)聽幾種控件的寫法

1:監(jiān)聽TextField寫法

-(void)RACofTextField{

? ? UITextField *nameTextField =[[UITextField alloc]initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width,50)];

? ? [self.view addSubview:nameTextField];

??[[nameTextField rac_textSignal]subscribeNext:^(NSString * _Nullable x) {

? ? ? ? NSLog(@"%@",x);?

? ? }];

}

2:監(jiān)聽按鈕的寫法

-(void)RACofButton

{

? ? UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

? ? button.frame = self.view.bounds;

? ? [self.view addSubview:button]涂籽;

?? [[button rac_signalForControlEvents:(UIControlEventTouchUpInside)] subscribeNext:^(__kindof UIControl * _Nullable x) {

? ? ? ? NSLog(@"%@",x) ;

? ? }];

}

3:監(jiān)聽通知的寫法

-(void)RACofNotification

{

?? [[[NSNotificationCenter defaultCenter] rac_addObserverForName:UIApplicationDidEnterBackgroundNotification object:nil]subscribeNext:^(NSNotification * _Nullable x) {

? ? ? ? NSLog(@"%@",x);

? ? }];

}

五:RAC最大的坑是循環(huán)引用,在block里面砸抛,前面不要去使用self, 如果要使用可以用@weakify(self)[用在外面打斷循環(huán)引用], @strongify(self)[用在里面防止控制器銷毀block銷毀];

-(void)RACofTextField{

self.nameTextField =[[UITextField alloc]initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width,50)];

? ? [self.view addSubview:nameTextField];

@weakify(self)

??[[self.nameTextField rac_textSignal]subscribeNext:^(NSString * _Nullable x) {

????@strongify(self)

?????NSLog(@"%@",x);?

? ? }];

}

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末评雌,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子直焙,更是在濱河造成了極大的恐慌景东,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奔誓,死亡現(xiàn)場離奇詭異斤吐,居然都是意外死亡,警方通過查閱死者的電腦和手機厨喂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門和措,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蜕煌,你說我怎么就攤上這事派阱。” “怎么了斜纪?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵贫母,是天一觀的道長。 經(jīng)常有香客問我盒刚,道長颁独,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任伪冰,我火速辦了婚禮誓酒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘贮聂。我一直安慰自己靠柑,他們只是感情好,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布吓懈。 她就那樣靜靜地躺著歼冰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪耻警。 梳的紋絲不亂的頭發(fā)上隔嫡,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天甸怕,我揣著相機與錄音,去河邊找鬼腮恩。 笑死梢杭,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的秸滴。 我是一名探鬼主播武契,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼荡含!你這毒婦竟也來了咒唆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤释液,失蹤者是張志新(化名)和其女友劉穎全释,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體误债,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡浸船,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了找前。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡判族,死狀恐怖躺盛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情形帮,我是刑警寧澤槽惫,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站辩撑,受9級特大地震影響界斜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜合冀,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一各薇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧君躺,春花似錦峭判、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至俺泣,卻和暖如春疗认,著一層夾襖步出監(jiān)牢的瞬間完残,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工横漏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留谨设,地道東北人。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓绊茧,卻偏偏與公主長得像铝宵,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子华畏,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 前言 之前對RAC有了一個基本的認識鹏秋,了解了它的作用,以及RAC的運行機制亡笑,我們知道只要是信號(RACSignal...
    大大盆子閱讀 4,498評論 0 11
  • IOS輕松搞定button單選侣夷,多選,反選標簽 (1)創(chuàng)建KKTipView繼承于UIView .h文件內(nèi)容 //...
    曼紀珂閱讀 230評論 2 2
  • RAC使用測試Demo下載:github.com/FuWees/WPRACTestDemo 1.ReactiveC...
    FuWees閱讀 6,368評論 3 10
  • 什么是RAC: git 重量型開源項目,主要是針對各種事件的處理 仑乌。什么是響應式編程:一個簡單的理解:如果a + ...
    York_Lee閱讀 517評論 0 0
  • # Node.js學習筆記 ## 簡介 - 編寫高性能網(wǎng)絡服務器的JavaScript工具包 - 單線程百拓、異步、事...
    LYX_Rain閱讀 287評論 0 0