簡單來說,RAC是一個第三方庫!全稱ReactiveCocoa,我們的蘋果框架才叫cocoa 而RAC的礦建也叫cocoa,可想而知RAC的強大之處,RAC主要是監聽信號源(RACSignal),它能夠動態監聽一個事件,好比說UIButton  UITextField 還能監聽一個方法,方法一旦調用,RAC就可以監聽,從而做出響應事件,用RAC做監聽也是特別簡單.

總體來說,會用了RAC你會愛上他,以前的addTarget 添加響應事件,那都太婁了!!!!

下面來大體寫一下,RAC常用的方法CocoaPost 導入.ReactiveObjC :

#import<ReactiveObjC.h>

#import<NSObject+RACKVOWrapper.h>

//利用RAC做響應.一個方法的調用

[[_myrecView rac_signalForSelector:@selector(sendMsg:)]subscribeNext:^(RACTuple * _Nullable x) {

NSLog(@”控制器聽到了%@”,x);

}];

//    KVO Rac做監聽

[_myrecView rac_observeKeyPath:@”frame” options:NSKeyValueObservingOptionNew observer:nil block:^(id value, NSDictionary *change, BOOL causedByDealloc, BOOL affectedOnlyLastComponent) {

NSLog(@”哥們屬性改變了%@”,change);

}];

[[_myrecView rac_valuesForKeyPath:@”frame” observer:nil]subscribeNext:^(id  _Nullable x) {

NSLog(@”%@”,x);

}];

//監聽按鈕點擊事件

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

NSLog(@”你點擊了我!!”);

}];

//監聽鍵盤事件

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

NSLog(@”%@”,x);

}];

//輸入框事件

[_myText.rac_textSignal subscribeNext:^(NSString * _Nullable x) {

NSLog(@”%@”,x);

}];

//    RAC 定時器 一句話 一秒執行一次

[[RACSignal interval:1.0 onScheduler:[RACScheduler scheduler]]subscribeNext:^(NSDate * _Nullable x) {

NSLog(@”第%@秒”,x);

}];

//五秒后執行一次

[[RACScheduler mainThreadScheduler]afterDelay:5 schedule:^{

NSLog(@”五秒后執行一次”);

}];

能力有限,只能寫這麼多.有什麼問題歡迎大家留言指正,我看到一定回復.感謝!!!!!!!

分享