Swift-MVC
MVVM , MVP和VIPER
几周以来,我一直在尝试了解有关iOS建筑模式的更多信息。 作为基本MVC的一部分,您可以找到有关MVVM,MVP和VIPER的一些不错的文章。
- iOS架构模式
- MVVM简介
- 使用VIPER架构iOS应用
我不确定他们。 而且我还是很困惑。 最后, Bohdan Orlov在他的文章中说:“ 没有灵丹妙药, 因此选择架构模式只是在您的特定情况下权衡取舍的问题 ”。
我也有类似的想法。 当您可以使用更好的MVC时,为什么将所有架构决策押注在某种时髦的流行模式上?
MVC
我完全同意MVC被破坏的事实,因为View和Controller集成在同一文件中。 这是事实,使MVC成为谎言。
我还认为采用这种替代模式是因为Objective-C的功能不如Swift强大。 老实说,由于Swift,我们可以以其他方式使用MVC。 现在要容易得多。 扩展功能更加强大且显而易见。 结构和枚举现在是真实的模型结构。 易于理解和使用。
因此,如果使用MVVM , MVP和VIPER也很痛苦,为什么我们不简单地使用MVC ?
搜索图案
我想学习如何使用HealthKit Framework ,所以几天前开始了一个项目。
我正在使用该项目来发展和研究有关如何在Swift中使用MVC的想法。 距离完成还很遥远,但是我要坚持下去。 每天都在发展和更改代码。
Swift-MVC
线索之一是使用扩展来尽可能多地移出ViewController。
视图:UIViewControllerIt是View 。
- 所有View Life Circle都在那里,因此仅将View代码放入ViewController中。
控制器:扩展
- 将所有Delagate和Data Source代码添加到新的扩展文件中。
- 我们通常将View Controller内部拥有的所有逻辑扩展到一个新的扩展逻辑文件。
模型
- 结构和枚举。 将所有数据模式转换为新文件
通过这种结构,ViewController的长度为100行。
结论
我知道您将拥有很多文件夹。 但是,这是什么问题呢? 您更喜欢Massive View Controller还是内部包含少量代码的大量文件?
这就是我试图发展的想法。 你怎么看?
您可以在此处检查代码。 它在发展,所以明天可能会有所不同。
- 使用Swift和Firebase更改用户电子邮件和密码
- 如何调用本地图像文件并显示到imageviewcontroller
- IOS – 如果用户点击randome元素而不是背景,如何隐藏键盘?
- 以协议types为关键字的Swift Dictionary
- Swift CoreMotion检测在后台点击或敲击设备
- 苹果推送通知 – 从生产应用程序获取空推送令牌 – 将推动令牌在修复configuration文件问题后发送
- 如何自动生成NSManagedObject子类与date而不是NSDatedate属性?
- 在滚动时将部分插入到UICollectionView时的性能问题
- 计算正确的脉冲或力以将Box2D体移动到特定位置 – Box2D