ReactiveCocoa
发布时间:2020-12-15 05:12:26 所属栏目:百科 来源:网络整理
导读:函数式编程 + 响应式编程 = 函数响应式编程 ReactiveCocoa 主要解决了一下的问题: 1 、 UI 数据绑定 UI 控件通常需要绑定一个事件, RAC 可以方便的绑定任何数据流到控件上。 2 、用户交互事件绑定 RAC 为可交互的 UI 控件提供一系列能够发送 Signal 信号的
函数式编程 + 响应式编程 =函数响应式编程
ReactiveCocoa 主要解决了一下的问题: 1、UI数据绑定 UI 控件通常需要绑定一个事件,RAC可以方便的绑定任何数据流到控件上。 2、用户交互事件绑定 RAC 为可交互的 UI控件提供一系列能够发送 Signal信号的方法,这些数据流会在用户交互中相互传递。 3、解决状态以及状态之间依赖过多的问题 有了RAC绑定,可以不用关心各种复杂的状态,isSelected,isFinished等,也解决了这些状态在后期维护艰难的问题。 4、消息传递机制的统一 OC 中的消息传递的方式通常有: Delegate 通知(NotificationCenter) Block CallBack Target-Action KVO 开发中常用笔记:
1、代替代理: 对应方法:rac_signalForSelector 需求:自定义View,监听View中按钮点击 之前都是需要通过代理监听,点击按钮的时候,通知代理做事情 rac_signalForSelector:把调用某个对象的方法的信息转换成信号,只要调用这个方法,就会发送信号。 这里表示只要View调用clickViewButton,就会发出信号,订阅就好了。 [[self.View rac_signalForSelector:@selector(clickViewButton)] subscribeNext:^(id x) { NSLog(@"点击了视图上的按扭"); }]; 2、代替 KVO:(监听某个对象的属性改变) 对应方法:rac_valuesAndChangesForKeyPath [[self.View rac_valuesAndChangesForKeyPath:@"frame" options:NSKeyValueObservingOptionNew observer:nil] subscribeNext:^(id x) { NSLog(@"%@",x); }]; 3、监听事件: 对应方法:rac_signalForControlEvents 把按钮点击事件转换为信号,点击按钮,就会发送信号 [[self.button rac_signalForControlEvents:UIControlEventTouchUpInside ] subscribeNext:^(id x) { NSLog(@"点击了按扭"); }]; 4、代替通知:(监听某个通知) 对应方法:rac_addObserverForName [[[NSNotificationCenter defaultCenter] rac_addObserverForName:UIKeyboardWillChangeFrameNotification object:nil] subscribeNext:^(id x) { NSLog(@"键盘frame发生改变%@",x); }]; 5、监听文本框文字改变: 对应方法:rac_textSignal(只要文本框发出改变就会发出这个信号) [self.textfield.rac_textSignal subscribeNext:^(id x) { NSLog(@"%@",x); }]; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |