回答
MVVM肯定不需要Reactive Cocoa。我已经构建了一个非常成功的MVVM框架,完全没有任何绑定。绑定不是MVVM的要求。
具体来说,视图模型和视图之间的链接确实要求视图模型向视图发信号通知它需要更新其数据。这可以通过使用Reactive Cocoa,KVO(我非常喜欢Facebook的KVOController),甚至使用简单的委托模式来实现。
视图模型知道视图何时需要更新 - 数据已更改,或者通过模型发出异步数据请求,并且该模型已加载到视图模型中。
设置视图时,可以将每个控件绑定到视图模型上的对应值。我发现,当我需要制作屏幕时,这会变得非常乏味。相反,我宁愿有一个方法,当视图模型指示视图应该自行更新时调用。在那个方法中,我只需要设置我所有的控件属性。
现在,您只需要关心自己如何触发该方法。在我的个人框架中,我利用KVO和ViewControllers监视ViewModel基类的timestamp属性。任何时候,我的视图模型都会更新其基础数据,其更新时间戳会触发更新。您可以轻松地将View Controller注册为ViewModel的更新委托并使用标准的委托模式。另外,MVVM不是关于具体的实现需求,更多的是关于高级关注点分离,依赖关系解耦和封装的概念。
我已经做了一些测试上MVVMSwiftSample
我做了MVVM设计模式在斯威夫特POP与KVC方法。你可以检查你是否喜欢它,这将是我在GitHub上的乐趣。
你什么时候想创建/附加你的项目的另一半?数据收集似乎已经完成了一半...... – holex 2017-12-13 10:39:44
- 1. JCA示例实现
- 2. WebHook实现示例?
- 3. DASH示例实现
- 4. EntityList/EntityCollection - MVVM示例
- 5. WPF MVVM Picklist示例
- 6. MVVM Light Toolkit示例
- 7. Baum-Welch的实现示例
- 8. System.Web.Mvc.IView.Render()的示例实现?
- 9. 需要示例实现MessageHeaders.WriteHeaderContents
- 10. 寻找一个MVVM示例
- 11. WinRT MVVM Light示例项目
- 12. MVVM光线程示例
- 13. MVVM示例不工作
- 14. Lottie的iOS示例?
- 15. MVVM应用程序序列化设计/实现示例
- 16. MVVM关闭标签示例的任何代码示例?
- 17. 在Alexa中实现SSML示例
- 18. 实例中的underscore.js _.memoize()示例?
- 19. PhotoScroller示例iOS MaxZoom?
- 20. phonegap ios示例config.xml
- 21. Android:谷歌headergridview的示例实现
- 22. 实现Java文档模型的示例
- 23. 自定义UserDetails实现的示例
- 24. 尝试在Flask MiniTwit示例中实现类似Twitter的消息回复示例
- 25. 最小的iOS BluetoothManager示例
- 26. 带数据库的WPF MVVM示例
- 27. 显示在实例
- 28. REST API实现示例代码
- 29. 示例Windows Phone 7枢轴实现
- 30. Hadoop WordCount示例 - 实现分类
你的问题是有趣的,但过于宽泛。你有什么考虑?否则,你应该看看这两篇博客文章:[Swift:使用MVVM处理可选项](http://natashatherobot.com/swift-mvvm-optionals/)和[MVVM简介](http:// www.objc.io/issue-13/mvvm.html)。您也可以阅读以下主题:[重写Objective-C中的代码以符合Swift电源工具和简洁的风格](http://codereview.stackexchange.com/questions/62958/rewrite-code-from-objective-c-to -conform与 - 迅速,电力工具和简洁-STYL)。 Rob Mayoff给出的优秀答案使用MVVM设置。 – 2014-10-03 23:57:02
GitHub上的另一个Swift MVVM示例[here](https://github.com/shilgapira/SwiftDemoMVVM)。 – 2014-10-04 13:41:42
如果您的系统可以帮助您进行数据绑定,那么您只能采用MVVM。在iOS中,这几乎肯定会成为KVO机制。您需要这样做才能避免为每个媒体资源编写自己的更改跟踪代码。 ReactiveCocoa是将KVO API与通知和异步数据流统一在一起的最成熟的项目,一旦学习结束后,它将非常强大。我建议不要试图避免它,但实际上要拥抱它。 – fatuhoku 2014-11-15 09:22:26