iOS中的MVVM示例/示例实现
HAs任何人在iOS应用程序中实现MVVM模式,而不使用ReactiveCocoa?
在这里发现了很多的例子,但他们都使用反应cocoa。 我想要一个MVVM实现的简单例子。
MVVM绝对不需要Reactive Cocoa。 我已经build立了一个非常成功的MVVM框架没有任何绑定。 绑定不是MVVM的要求。
具体而言,视图模型和视图之间的链接确实要求视图模型向视图发信号,表明它需要更新其数据。 这可以通过使用Reactive Cocoa,KVO(我真的喜欢Facebook的KVOController),甚至使用简单的委托模式来实现。
视图模型知道什么时候视图需要更新 – 数据已经改变,或者通过模型发出asynchronous数据请求,模型已经加载到视图模型中。
当您设置视图时,可以将每个控件绑定到视图模型上的对应值。 我发现,当我需要画出屏幕时,这可能会变得非常单调乏味。 相反,我宁愿有一个单一的方法,当视图模型指示视图应该更新自己时调用。 在该方法中,我只是要设置所有的控件属性。
现在,您只需要关心该方法是如何触发的。 在我的个人框架中,我利用KVO和我的ViewControllers监视我的ViewModel基类上的timestamp属性。 任何时候,我的视图模型更新其基础数据,其时间戳更新触发更新。 您可以轻松地将View Controller注册为ViewModel的更新委托,并使用标准委托模式。
同样,MVVM不是关于具体的实现要求,更多的是关于分离关注点,依赖关系解耦和封装的更高层次的概念。
我已经对MVVMSwiftSample做了一些testing
我使用KVC方法在Swift POP中制作了MVVMdevise模式。 你可以检查你是否喜欢这个,这将是我在GitHub上的乐趣。