日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ReactiveCocoa初步

發布時間:2025/7/25 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ReactiveCocoa初步 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
[self.usernameTextField.rac_textSignal subscribeNext:^(id x) {NSLog(@"%@", x); }];

打印結果

2013-12-24 14:48:50.359 RWReactivePlayground[9193:a0b] i 2013-12-24 14:48:50.436 RWReactivePlayground[9193:a0b] is 2013-12-24 14:48:50.541 RWReactivePlayground[9193:a0b] is 2013-12-24 14:48:50.695 RWReactivePlayground[9193:a0b] is t 2013-12-24 14:48:50.831 RWReactivePlayground[9193:a0b] is th 2013-12-24 14:48:50.878 RWReactivePlayground[9193:a0b] is thi 2013-12-24 14:48:50.901 RWReactivePlayground[9193:a0b] is this 2013-12-24 14:48:51.009 RWReactivePlayground[9193:a0b] is this 2013-12-24 14:48:51.142 RWReactivePlayground[9193:a0b] is this m 2013-12-24 14:48:51.236 RWReactivePlayground[9193:a0b] is this ma 2013-12-24 14:48:51.335 RWReactivePlayground[9193:a0b] is this mag 2013-12-24 14:48:51.439 RWReactivePlayground[9193:a0b] is this magi 2013-12-24 14:48:51.535 RWReactivePlayground[9193:a0b] is this magic 2013-12-24 14:48:51.774 RWReactivePlayground[9193:a0b] is this magic? rac_textSignal文本信號訂閱,傳遞給下一個,打印


文本信號過濾(長度過濾)
filter: filter:^BOOL(id value) {NSString *text = value;return text.length > 3;}] [[self.usernameTextField.rac_textSignalfilter:^BOOL(id value) {NSString *text = value;return text.length > 3;}]subscribeNext:^(id x) {NSLog(@"%@", x);}];

打印結果

2013-12-26 08:17:51.335 RWReactivePlayground[9654:a0b] is t 2013-12-26 08:17:51.478 RWReactivePlayground[9654:a0b] is th 2013-12-26 08:17:51.526 RWReactivePlayground[9654:a0b] is thi 2013-12-26 08:17:51.548 RWReactivePlayground[9654:a0b] is this 2013-12-26 08:17:51.676 RWReactivePlayground[9654:a0b] is this 2013-12-26 08:17:51.798 RWReactivePlayground[9654:a0b] is this m 2013-12-26 08:17:51.926 RWReactivePlayground[9654:a0b] is this ma 2013-12-26 08:17:51.987 RWReactivePlayground[9654:a0b] is this mag 2013-12-26 08:17:52.141 RWReactivePlayground[9654:a0b] is this magi 2013-12-26 08:17:52.229 RWReactivePlayground[9654:a0b] is this magic 2013-12-26 08:17:52.486 RWReactivePlayground[9654:a0b] is this magic?

可見大于三個的輸入才會把輸入的文本信號傳遞給訂閱者

代碼整理一下

RACSignal *usernameSourceSignal = self.usernameTextField.rac_textSignal;RACSignal *filteredUsername = [usernameSourceSignal filter:^BOOL(id value) {NSString *text = value;return text.length > 3;}];[filteredUsername subscribeNext:^(id x) {NSLog(@"%@", x); }];

訂閱信號,過濾條件,傳遞給訂閱者

?

?

[[self.usernameTextField.rac_textSignalfilter:^BOOL(id value) {NSString *text = value; // implicit castreturn text.length > 3;}]subscribeNext:^(id x) {NSLog(@"%@", x);}];

關于id value,在此例中就是傳遞的字符串

可直接修改替換

[[self.usernameTextField.rac_textSignalfilter:^BOOL(NSString *text) {return text.length > 3;}]subscribeNext:^(id x) {NSLog(@"%@", x);}];

?

rac_textSignal默認傳遞給訂閱者的是文本內容,想傳遞其他的內容需要用到map map:^id(NSString *text) {return @(text.length);}] [[[self.usernameTextField.rac_textSignalmap:^id(NSString *text) {return @(text.length);}]filter:^BOOL(NSNumber *length) {return [length integerValue] > 3;}]subscribeNext:^(id x) {NSLog(@"%@", x);}];

傳遞給訂閱者文本長度信號,再對這個信號進行了文本長度大于3的過濾器,最近訂閱者終于訂閱到了這個實時的文本輸入長度信號

2013-12-26 12:06:54.566 RWReactivePlayground[10079:a0b] 4 2013-12-26 12:06:54.725 RWReactivePlayground[10079:a0b] 5 2013-12-26 12:06:54.853 RWReactivePlayground[10079:a0b] 6 2013-12-26 12:06:55.061 RWReactivePlayground[10079:a0b] 7 2013-12-26 12:06:55.197 RWReactivePlayground[10079:a0b] 8 2013-12-26 12:06:55.300 RWReactivePlayground[10079:a0b] 9 2013-12-26 12:06:55.462 RWReactivePlayground[10079:a0b] 10 2013-12-26 12:06:55.558 RWReactivePlayground[10079:a0b] 11 2013-12-26 12:06:55.646 RWReactivePlayground[10079:a0b] 12

?

當我們需要用一個方法來判斷輸入的用戶名或者密碼符合要求不,一般會寫個額外的方法,然后在這個方法里進行正則匹配。

那么 我們就要用這個方法來處理最初默認的文本內容信號

RACSignal *validUsernameSignal =[self.usernameTextField.rac_textSignalmap:^id(NSString *text) {return @([self isValidUsername:text]);}];RACSignal *validPasswordSignal =[self.passwordTextField.rac_textSignalmap:^id(NSString *text) {return @([self isValidPassword:text]);}];

?

根據這個NSNumber來傳遞一個UIColor

[[validPasswordSignalmap:^id(NSNumber *passwordValid) {return [passwordValid boolValue] ? [UIColor clearColor] : [UIColor yellowColor];}]subscribeNext:^(UIColor *color) {self.passwordTextField.backgroundColor = color;}];

看著上面的代碼,還行,不過RAC有個更優雅的宏來展現

RAC(self.passwordTextField, backgroundColor) =[validPasswordSignalmap:^id(NSNumber *passwordValid) {return [passwordValid boolValue] ? [UIColor clearColor] : [UIColor yellowColor];}];RAC(self.usernameTextField, backgroundColor) =[validUsernameSignalmap:^id(NSNumber *passwordValid) {return [passwordValid boolValue] ? [UIColor clearColor] : [UIColor yellowColor];}];

?

通常情況下,登錄一般是用戶名和密碼都匹配后才會在網絡好的情況下登錄成功。需要 進行信號混合

RACSignal *signUpActiveSignal =[RACSignal combineLatest:@[validUsernameSignal, validPasswordSignal]reduce:^id(NSNumber *usernameValid, NSNumber *passwordValid) {return @([usernameValid boolValue] && [passwordValid boolValue]);}];

?

轉載于:https://www.cnblogs.com/songxing10000/p/4933543.html

總結

以上是生活随笔為你收集整理的ReactiveCocoa初步的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲视频一区在线观看 | 亚洲色图网址 | 国产美女精品视频国产 | 一区二区三区视频在线观看 | 日韩精品国产一区 | 青青草视频网站 | 一本色道久久综合亚洲二区三区 | 很黄的性视频 | 成人av电影在线播放 | 欧美色xxx | 久久久久二区 | 色欲久久久天天天综合网精品 | 97精品国产97久久久久久免费 | 国产精品成久久久久三级 | 美乳人妻一区二区三区 | proumb性欧美在线观看 | 亚洲精品一区三区三区在线观看 | 91免费看网站 | 欧美69精品久久久久久不卡 | 新91在线 | 久久小视频| 中文字幕超清在线观看 | 日韩二区三区四区 | 性免费网站 | 亚洲午夜福利一区二区三区 | 久久婷婷影院 | 五月婷视频 | 无码人妻精品一区二区三区在线 | 午夜精品久久久久久久久久久久 | 95视频在线| 日韩成人一区二区 | 日韩av不卡在线播放 | 黄色在线免费观看 | 国产精品老熟女视频一区二区 | 国产日韩二区 | 国产一级在线观看视频 | 成人毛片视频免费看 | 天堂av成人| 97色伦97色伦国产欧美空 | 中文字幕精品视频在线 | 青青草原亚洲视频 | 日韩久久一区二区三区 | 色网站在线看 | 国产第八页| 天堂影视av | 大又大粗又爽又黄少妇毛片 | 红桃成人在线 | 久在线播放 | 欧美一区二区三区成人片在线 | 香蕉依人| 日本妈妈3| 精品午夜福利视频 | 亚洲午夜一区二区三区 | 韩国黄色一级片 | a√国产| 黄色三级a | 午夜精品福利影院 | 免费国产一区二区 | 白嫩日本少妇做爰 | 噼里啪啦国语电影 | 久久久久人妻一区精品色欧美 | 麻豆视频91 | 韩国三级中文字幕hd久久精品 | 欧美成人午夜免费视在线看片 | 两性午夜免费视频 | 亚洲天堂一二三 | 国产网站在线看 | 久久人妻免费视频 | 伊人网在线观看 | 日韩伦理视频 | 日日躁夜夜躁狠狠久久av | 天天操天天操天天操天天 | 性生活视频网站 | 国产在线aaa| 深夜激情影院 | 国产肉体xxxx裸体784大胆 | 不卡av中文字幕 | 久久99伊人 | 日本大尺度吃奶做爰视频 | 欧美特一级 | 国产精品一级二级三级 | 色又色 | 草av | 中文字幕国产亚洲 | 欧美乱大交xxxxx春色视频 | 西西久久| 乳罩脱了喂男人吃奶视频 | 真人一及毛片 | 欧美日韩1区 | 视频国产一区 | 少妇熟女一区二区 | 女同毛片一区二区三区 | 99re这里 | 蜜桃视频一区二区在线观看 | 黑人一级视频 | 中文字幕欧美激情 | 精品人妻一区二区三区潮喷在线 | 日本少妇全体裸体洗澡 | 欧美一区二区三区免费观看 |