ReactiveCocoa框架里面应该要了解的几个功能

2018-11-15  本文已影响12人  Sweet丶

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

上一篇下一篇

猜你喜欢

热点阅读