OC正式协议和非正式协议
2016-05-11 20:39
281 查看
1.概念
非正式协议,非正式协议是NSObject类(包括它的子类)的类别,其所有的子类都含蓄地接受了这个协议。非正式协议中的方法是否实现都是可选的,因此在调用非正式协议中的方法之前,需要去检查对象类是否实现了它。在Objective-C2.0中引入可选的正式协议方法之前,非正式协议是Foundation和AppKit类实现委托的唯一方式。
非正式协议就是类别,即凡是NSObject或其子类的类别,都是非正式协议
正式协议,使用@protocol声明的协议,实现协议类应该遵守协议,协议的方法有两类属性@required和@optional两种,@required的方法遵守协议必须实现协议中的方法,@optional属性不做要求。
非正式协议,非正式协议是NSObject类(包括它的子类)的类别,其所有的子类都含蓄地接受了这个协议。非正式协议中的方法是否实现都是可选的,因此在调用非正式协议中的方法之前,需要去检查对象类是否实现了它。在Objective-C2.0中引入可选的正式协议方法之前,非正式协议是Foundation和AppKit类实现委托的唯一方式。
非正式协议就是类别,即凡是NSObject或其子类的类别,都是非正式协议
正式协议,使用@protocol声明的协议,实现协议类应该遵守协议,协议的方法有两类属性@required和@optional两种,@required的方法遵守协议必须实现协议中的方法,@optional属性不做要求。
相关文章推荐
- android一句话搞定图片加载
- imagemap的推荐使用方法,前端自适应image maps库
- 隐式内联函数和显式内联函数
- Mysql基础以及CRUD操作
- LeetCode:Power of Three
- android中xml tools:属性详解
- iOS之SQLite基本使用
- C++作业5
- 接口测试入门(2)--get和post初级请求/使用httpclient做一个获取信息list的请求(需要登录才可以)
- Java基础知识总结
- 机器学习课堂笔记(十五)
- [置顶] 形参是接口
- flask-mai发送邮件503,553错误
- code vs 1743 反转卡片(splay)
- vim文档编辑
- 【C++ STL】三十分钟掌握STL
- Nodejs对postgresql基本操作的封装
- LeetCode:Power of Four
- 欢迎使用CSDN-markdown编辑器
- 区间调度问题