RAC +MVVM

 https://blog.csdn.net/capf_sam/article/details/60960530

https://blog.csdn.net/capf_Sam/article/details/60960615

 

http://www.cocoachina.com/ios/20170612/19500.html

 

 

 

 

 

//响应式 <ReactiveObjc.h>
[[XXX rac_signalForSelector] subscribeNext:^(RACTuple * x){}];

[self.searchText.rac_textSignal subscribeNext: ^(id text){ NSLog(@"%@", text); }];
//KVO <NSObject + RACKVOWrapper.h> [XXX rac_observerKeyPath: options: observer: block:];

 

MMTableViewModel

MaterialViewModel

//响应式 <ReactiveObjc.h>
[[XXX rac_signalForSelector] subscribeNext:^(RACTuple * x){}];

//KVO <NSObject + RACKVOWrapper.h>
[XXX rac_observerKeyPath: options: observer: block:];

//
[xxx rac_valuesForKeyPath: observer:];

//监听事件
[[btn rac_singalForControlEvents:] subscribeNext:]

//通知
[[NSNotificationCenter defaultCenter]rac_addObserverForName: object:] subscribeNext:];

//textfield 输入监听
[_textField.rac_textSignal subscribeNext:^(NSString *x){}];


1.RACSignal:信号类
创建信号:冷信号
RACSingal *signal = [RACSignal createSignal:^()]
订阅信号:热信号 RACSubcriber-发送信号
取消订阅 RACDispose

2,RACSubject:可创建信号,也可发送信号

 

 

RAC 宏

   // RAC:把一个对象的某个属性绑定一个信号,只要发出信号,就会把信号的内容给对象的属性赋值
    // 给label的text属性绑定了文本框改变的信号
    RAC(self.label, text) = self.textField.rac_textSignal;
//    [self.textField.rac_textSignal subscribeNext:^(id x) {
//        self.label.text = x;
//    }];

 

posted @   尘恍若梦  阅读(380)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
点击右上角即可分享
微信分享提示