MVC
MVC:Model-View-Controller(模型-视图-控制器),是 iOS 开发中频繁使用的一种设计模式。
- Model 负责维护和处理数据,如网络连接,数据计算与存储等。除了 View 和 Controller 以外的所有内容都应该包含在 Model 中。(处理和保存数据)
- View 负责绘制界面,例如 UIButton、UIImageView、UITableView 等。View 应该尽可能地不含业务逻辑。(绘图视图)
- Controller 具有对 Model 和 View 的引用,并监听 Model 的更改。Controller 接收用户的输入,然后请求 Model 处理,并在检测到对 Model 的更改时及时更新 View。(接受用户输入并连接视图和模型)
MVC.png
经典图
MVC经典图.png
解读
- Model 和 View 不能相互通信,只能通过 Controller。
- Controller 可以直接操作 Model(读写调用 Model),Model 通过 Notification 和 KVO 机制与 Controller 间接通信。
- Controller 可以通过 IBOutlet、IBAction 或 dataSource、delegate 操作 View。
项目结构
MVC项目结构.png
优点
- 代码得以复用。
- 代码易于扩展。
- 代码易于维护。
缺点
- 增加了系统结构和实现的复杂性。
- View 对 Model 的访问效率便低。
- View 与 Controller 之间出现紧密的耦合。
其他模式
- MVP
- MVVM
总结
没有最好的架构,只有最适合的架构。
Xcode 快捷键
常见快捷键
- ⌘ B:编译。
- ⌘ R:运行。
- ⌘ U:测试。
- ⌘ .:停止。
- ⌃ ⌘ E:重命名。
- ⌃ I:代码格式化。
- ⌃ ⌘ Click:跳转到点击内容的定义位置。
- ⌥ ⌘ /:添加文档注释。
- ⌘ F:文件内查找。
- ⇧ ⌘ F:项目内查找。
- ⇧ ⌘ K:清理项目。
- ⌃ ⌘ → 和 ⌃ ⌘ ←:在最近打开的文件之间来回切换。
- ⌃ ⌘ ↑:生成当前文件的 interface。
- ⌘ ⌥ [ 和 ⌘ ⌥ ]:对选中代码进行上下移动。
- ⌘ :在当前行上添加或删除断点。
- ⌃ 6:快速查看当前文件的方法列表。
- ⌃ ⌘ R:不编译直接运行(与QQ的录屏冲突)。
图标说明
⌃:control ⌘:command ⌥:option ⇧:shift