扩展用途 声明私有属性 声明私有成员变量 声明私有方法 特点注意与 category 的区别 * 编译时决议 * 只以声明的形式存在,多数情况下寄生在宿主类的. m中 * 不能为系统类添加扩展 代理 准确的来说是一种软件设计模式, 代理模式 iOS 中, 系统为我们提供了@ protocol 形式 代理是一对一的 协议有必须要实现的(@require), 不惜要实现的(option) 一般用 weak 来规避循环引用 通知 使用观察者模式来实现用于跨层传递消息的机制 传递方式 一对多