1.MVC
所有的类分为三种:Models、Views、Controllers
- 模型Models:负责保存数据,通常为结构体或者类
- 视图Views:负责展示屏幕上的元素和空间,通常是UIView的子类
- 控制器Controllers:模型和视图之间的协调者,通常是UIViewController的子类
- 三者关系:控制器管理模型和视图,强引用着模型和视图。模型和控制器通过属性观察器交互,视图和控制器通过IBActions交互
1.1 MVC的使用
a)模型
1 | public struct Address { |
b)视图
1 | public final class AddressView: UIView { |
c)控制器
1 | class AddressViewController: UIViewController { |
2.代理模式
2.2 iOS中的消息传递方式
- 通知:由通知中心进行消息的接收和广播,一对多
- 代理:由代理对象、委托者、协议三部分组成
- 闭包:将回调处理代码直接写在闭包中
- target-action:将对象传到另一个对象中,将其当作target,调用他的对象方法
- KVO:Category-NSKeyValueObserving,通过属性监听的方式来监测该值的变化,变化时调用KVO的回调方法
2.3 代理的基本使用
代理由三部分组成:
协议:指定代理双发可以做什么,必须做什么
代理:根据协议,完成功能
委托:根据协议,指定代理应该完成的功能
a)协议
- 若协议仅在一个类中使用,可以写在该类中。若多个类使用同一个协议,建议写在一个单独的文件中。
- 协议中的方法默认是required的
1 | protocol LoginProtocol: AnyObject { // 限制协议实现的类型 |
b)代理:协议的实现
1 | class LoginDelegate: LoginProtocol { |
c)委托
1 | class Login { |