主要观点:
- AnyObject 表示单个引用计数对象,有时用于对象的生命周期或向下转换为具体类型,可作为泛型约束。
- 可将 AnyObject 用作协议约束,如
protocol MyDelegate: AnyObject
,可对实现者进行弱引用等操作。 any MyDelegate
本身不是 AnyObject,因为它带有“见证表”指针,这是协议一致性的运行时表示,而 Objective-C 协议不以这种方式表示。- Swift 类约束协议类型比 Objective-C 稍不方便,不能混合使用,但仍可进行多种操作。
关键信息:
- AnyObject 特点及用途。
- 协议约束中 AnyObject 和
any MyDelegate
的区别。 - Objective-C 协议与 Swift 协议在表示上的差异及原因。
重要细节:
- Apple OS 上关于 AnyObject 的说法是假的但应当作真的。
- 协议扩展中的方法是静态解析的原因及与动态分发的关系。
- 文章发布时间及分类标签等信息。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。