ReactiveCocoaフレームワークで理解すべきいくつかの機能

1233 ワード

RACフレームワークが提供するAPIは、実際に開発されているエージェント、KVO、通知などをより集約し、より便利に使用できます.ReactiveCocoaは関数式応答式プログラミング思想の下で開発されたフレームワークである.以下は具体的な使用
通知
[[[NSNotificationCenter defaultCenter] rac_addObserverForName:UIKeyboardDidShowNotification object:nil] subscribeNext:^(NSNotification * _Nullable x) {
        NSLog(@"%@",x);
    }];

KVO
[_redView rac_observeKeyPath:@"frame" options:NSKeyValueObservingOptionNew observer:nil block:^(id value, NSDictionary *change, BOOL causedByDealloc, BOOL affectedOnlyLastComponent) {
       NSLog(@"1 - %@",value);
   }];

またはマクロの使用
[RACObserve(_redView, frame) subscribeNext:^(id  _Nullable x) {
        NSLog(@"3 - %@",x);
    }];

エージェント
// 1.                
- (RACSubject *)btnClickSignal{
    if (!_btnClickSignal) {
        _btnClickSignal = [RACSubject subject];
    }
    return _btnClickSignal;
}

- (IBAction)btnClick:(id)sender{
    [_btnClickSignal sendNext:@"        "];
}

// 2.             
 [_greenView.btnClickSignal subscribeNext:^(id  _Nullable x) {
        NSLog(@"%@",x);
    }];

ブログよりまとめ:https://www.jianshu.com/p/cd4031fbf8ff