MVVM
在MVVM中有一个双向绑定的技术,主要的功能是Modal变化时,ViewModel会自动更新,ViewModel变化时,View会自动更新,正在学习的RAC(ReactiveCocoa)可以实现数据的绑定。
V/C----------ViewModel---------Model
View(View/ViewController)持有ViewModel,即在View中会有一个ViewModel的属性,ViewModel持有Model,在ViewModel中会有一个Model属性,这种持有关系都是单向的,不可以违反,view也不能越过ViewModel持有model
Model-------ViewModel-----------View
Model变化时,ViewModel会自动更新,ViewModel变化时,View会自动更新
Model-----数据模型 负责保持数据和实现业务逻辑,Model中的属性是数据类型的属性,比如 NSString,BOOL,NSURL等,或本身已经是Model类型!暂时没有看到集合类的属性!
ViewModel-----视图模型 视图模型负责呈现逻辑!与视图的显示相关的一些属性,比如:一组滚动图片,可在VIewModel中创建一个NSSArray属性,用来存储图片!主要是跟视图相关的一个数据,比如:有一组按钮要显示在页面上,可采用数组。比如是否需要登陆啊,是否需要VC重新刷新数据啊!ViewModel是一个放置用户输入验证逻辑,视图显示逻辑,发起网络请求和其他各种各样的代码的极好的地方
View -----视图 向用户展示并与用户交互并实现UI逻辑。由View和ViewController组成
ReactiveCocoa的初步认识:(知识来自于http://www.jianshu.com/p/87ef6720a096,可以回头再去看)
1.导入
在导入的时候要加上:use_frameworks!
然后 pod 'ReactiveCocoa', '~> 4.0.2 -alpha -1(看不清楚这里是1还是L)'
2.认识一下最核心的类RACSignal
信号类,一般表示将来有数据传递,只要有数据改变,信号内部接收到数据,就会马上发出数据。
注意:
信号类(RACSiganl),只是表示当数据改变时,信号内部会发出数据,它本身不具备发送信号的能力,而是交给内部一个订阅者去发出。
默认一个信号都是冷信号,也就是值改变了,也不会触发,只有订阅了这个信号,这个信号才会变为热信号,值改变了才会触发。
如何订阅信号:调用信号RACSignal的subscribeNext就能订阅。
网友评论