iOS中的MVVM示例/示例实现

Smi*_*tha 36 architecture mvvm ios xcode5

有没有人在你的iOS应用程序中实现MVVM模式而不使用ReactiveCocoa?

在这里找到了很多例子,但他们都使用Reactive Cocoa.我想要一个MVVM实现的简单示例.

Dre*_*pre 43

MVVM肯定不需要Reactive Cocoa.我已经构建了一个非常成功的MVVM框架,没有任何绑定.绑定不是MVVM的要求.

具体来说,视图模型和视图之间的链接确实需要视图模型向视图发信号通知它需要更新其数据.这可以使用Reactive Cocoa,KVO(我真的喜欢Facebook的KVOController),甚至使用简单的委托模式来实现.

视图模型知道View何时需要更新 - 数据是否已更改,或者您是否通过模型生成异步数据请求,并且模型已加载到视图模型中.

设置View时,可以将每个控件绑定到View Model上的相应值.我发现当我需要制作屏幕时,这可能会非常繁琐.相反,当视图模型发出视图应该更新自身时,我宁愿使用一个方法.在该方法中,我只是设置我的所有控件属性.

现在,您只需要关注如何触发该方法.在我的个人框架中,我利用KVO和我的ViewControllers监视我的ViewModel基类的时间戳属性.每当我的视图模型更新其基础数据时,其时间戳都会更新,从而触发更新.您可以轻松地将View Controller注册为ViewModel的更新委托,并使用标准委托模式.

同样,MVVM不是关于特定的实现要求,而是关于关注点分离,依赖关系解耦和封装的更高级别概念.

  • 这是一个很好的阅读 http://rasic.info/bindings-generics-swift-and-mvvm/ (2认同)