OC 协议&&分类
来源:互联网 发布:ubuntu系统分区教程 编辑:程序博客网 时间:2024/05/07 16:19
2016.9.5 OC 第七天 协议&&分类
OC没有多继承,为了完成多继承的效果,使用分类和协议
协议并不是一个真正的类,协议中只有方法,不能有实例变量
方法只有定义,没有实现。
协议:
正式协议:自定义,通过关键字@protocol创建的协议
两个关键字修饰方法:
@optional:其修饰的方法可实现,也可不实现 @required:必须要实现其修饰的方法
(如果没有关键字修饰,默认方法被@required所修饰)
非正式协议:分类、现在自定义的类
协议的声明:
@protocol 协议名称
…
…
协议可以遵循协议 @protocol 协议名称 <所要遵循协议的名称>
如果一个类遵循了协议,那么该类的子类也遵从了协议
协议不可以引用任何类,无类主义(Classless)
@interface Point<协议名称1>
一个类可以遵循多项协议 @protocol <协议名称1,协议名称2,协议名称3>
当对一个对象进行拷贝时,在要拷贝的目标类中实现copyWitnZone方法即可实现拷贝,一般情况下会让类遵从NSCoping协议,用来实现其方法
分类:一个类的组成部分(把方法区分声明)
就是类的一部分
只能添加方法,不能添加实例变量,可以为自定义类创建分类,也可以位系统框架类添加分类
定义:@interface 原类名(分类名)
@interface原类名(分类名)<协议名称>
一个类可以有很多分类,必须保证分类名称的唯一性
注意:1️⃣不允许创建分类与与继承某一个类同时出现
2️⃣分类可以重写类中方法,不建议这样写
3️⃣可以有多个分类
C++中的NULL:使用空指针调用函数,程序崩溃
OC中nil :使用空指针调用方法自动被忽略(程序没有崩溃)
BOOL类型;
C++:true false
OC: YES NO
SEL选择器
C++:特性
1、OC中没有引用&
2、OC中没有内联
3、OC中没有模板
4、OC中没有const
5、OC中没有操作符重载
6、OC中没有友元
- oc协议,延展,分类
- oc 分类与协议
- OC分类和协议
- OC 协议&&分类
- OC中的分类和协议
- OC的分类和协议
- oc基础知识:属性、协议和分类
- 黑马程序员IOS-OC语言-分类、协议
- OC基础8:分类和协议
- OC学习Runtime之协议与分类
- oc学习笔记之协议与分类
- OC学习7——@class、Category分类、protocol协议
- 03-OC中的分类(Category),代码块(Block),协议(property)
- oc中分类 扩展 协议的使用及区别
- 黑马程序员---OC基础---Block、分类Category、协议protocol
- 【黑马程序员-学习笔记】OC-协议与分类
- oc基础之分类与协议(五)
- oc中分类 扩展 协议的使用及区别
- mojito 脚本编写
- HDU 1174 爆头
- 学习总结
- LeetCode 94. Binary Tree Inorder Traversal 题解(C++)
- Unity3D - 物理引擎之刚体部件(Rigidbody)详解
- OC 协议&&分类
- 大数据学习的小概念
- 360大SB之IE7 ccs 之z-index的bug
- 05 Unity3D人工智能AI-逃避
- python验证码识别
- 第八周拓展实践7 谁是小偷
- OC 文件操作 持久化
- 我这大学四年
- 06 Unity3D人工智能AI-随机徘徊