don*_*ile 39 iphone macos cocoa cocoa-touch objective-c
Objective-C中正式和非正式协议之间有什么区别?
Sam*_*lan 58
来自官方文档
正式和非正式协议
协议有两种,正式和非正式:
一个非正式协议是NSObject的,这隐含地使得几乎所有对象的协议的采用一个类别.(类别是一种语言功能,使您可以在不对其进行子类化的情况下向类添加方法.)在非正式协议中实现方法是可选的.在调用方法之前,调用对象检查目标对象是否实现它.在Objective-C 2.0中引入可选协议方法之前,非正式协议对于Foundation和AppKit类实现委派的方式至关重要.
一个正式的协议声明的客户端类有望实现方法的列表.正式协议有自己的声明,采用和类型检查语法.您可以使用@required和@optional关键字指定其实现是必需的或可选的方法.子类继承其祖先采用的正式协议.正式协议也可以采用其他协议.
形式协议是Objective-C语言的扩展.
| 归档时间: |
|
| 查看次数: |
28620 次 |
| 最近记录: |