iOS——分类 延展 协议
2015-12-28 19:52
411 查看
一 分类
继承:可以完成对类型的扩充,不仅能够添加方法,也能添加实例变量
使用Category 分类或者类目的主要作用是为没有源代码的类添加方法
// 谨记:使用Category给类添加方法可以,但是不能添加实例变量
// 添加分类的步骤:
1. 新建文件,command + n
2. 选择Objective-C File 模板
3. file栏根据扩展的功能,写入文件名
4. 中间栏选择Category
5. Class 选项写入对哪个类的扩充,就写入那个类的类名
6. next之后会自动生成一对 “ 类名+扩展名.h” 和“ 类名 + 扩展名.m”的文件
7. 在.h文件中写入方法的声明
8. 在.m文件中写入方法的实现
创建分类的时候
分类不仅可以添加类方法,也可以添加对象方法,实例变量不能定义在分类中
使用分类添加的方法,是直接作用当前那个类上的,可以使用当前类或者当前类创建的对象直接调用方法
// 如果在分类中定义了和原始类中一样的方法,此时优先选择执行分类中的方法
不正式的添加分类的方法:
在 .h 文件中直接添加一个分类文件:
在.m文件中:
二 延展
用来管理一个类的私有方法
//给一个类添加延展的步骤:
1.新建文件command + n
2.选择Objective-C File模板
3.第一个file栏写入延展名 private
4.中间栏 选择 Extension
5.Class对哪个类延展就写哪个类的类名
6.此时只生成.h文件
7.然后到类的.m文件中写类的延展的实现,前提引入延展的头文件
注意:延展中是可以添加实例变量的(此时变量也是私有的)
延展针对的是可以看到源文件的类
延展和分类的区别:
延展中可以添加实例变量
延展中的方法和实例变量都是私有的,外界不能访问,分类中的方法外界可以访问
延展针对的是已知类(因为它的实现只能在这个类的 .m 文件中写),而分类可以为不知道源文件的类添加方法
延展中的内容子类不能继承,分类中的方法子类可以直接使用
三 协议
代理设计模式的由来:自己不想干,找别人干
代理设计模式的步骤:
创建协议文件之后,可以进一步修饰
第一种:用 required修饰协议内容: 一旦用required修饰之后就必须要被实现,否则崩溃
第二种:用optional修饰,他是可选择实现,也就是选择性的,不强制实现
// 一个类向要成为代理,必须要遵循协议的位置,写在其父类的后面,使用一对尖括号即可
继承:可以完成对类型的扩充,不仅能够添加方法,也能添加实例变量
* 缺点:如果工程中有很多需要扩充类的使用,此时要用子类去完成替换,工作量非常大,还容易出错
使用Category 分类或者类目的主要作用是为没有源代码的类添加方法
// 谨记:使用Category给类添加方法可以,但是不能添加实例变量
// 添加分类的步骤:
1. 新建文件,command + n
2. 选择Objective-C File 模板
3. file栏根据扩展的功能,写入文件名
4. 中间栏选择Category
5. Class 选项写入对哪个类的扩充,就写入那个类的类名
6. next之后会自动生成一对 “ 类名+扩展名.h” 和“ 类名 + 扩展名.m”的文件
7. 在.h文件中写入方法的声明
8. 在.m文件中写入方法的实现
创建分类的时候
分类不仅可以添加类方法,也可以添加对象方法,实例变量不能定义在分类中
使用分类添加的方法,是直接作用当前那个类上的,可以使用当前类或者当前类创建的对象直接调用方法
// 如果在分类中定义了和原始类中一样的方法,此时优先选择执行分类中的方法
不正式的添加分类的方法:
在 .h 文件中直接添加一个分类文件:
在.m文件中:
二 延展
用来管理一个类的私有方法
//给一个类添加延展的步骤:
1.新建文件command + n
2.选择Objective-C File模板
3.第一个file栏写入延展名 private
4.中间栏 选择 Extension
5.Class对哪个类延展就写哪个类的类名
6.此时只生成.h文件
7.然后到类的.m文件中写类的延展的实现,前提引入延展的头文件
注意:延展中是可以添加实例变量的(此时变量也是私有的)
延展针对的是可以看到源文件的类
延展和分类的区别:
延展中可以添加实例变量
延展中的方法和实例变量都是私有的,外界不能访问,分类中的方法外界可以访问
延展针对的是已知类(因为它的实现只能在这个类的 .m 文件中写),而分类可以为不知道源文件的类添加方法
延展中的内容子类不能继承,分类中的方法子类可以直接使用
三 协议
代理设计模式的由来:自己不想干,找别人干
代理设计模式的步骤:
* 制定协议 * 寻找代理 * 遵循协议 * 成为代理 * 执行协议中的方法 * 告诉代理什么时候开始工作 制定协议的步骤: 1.command + n 新建文件 2.文件名(类名 + delegate)eg:为Person类制定协议: PersonDelegate 3.中间栏选 Protocol 4.Class 哪个类制定的协议就选哪个类 5.只生成 .h 文件 6.谁成为代理就去谁的 .m 文件中写协议的方法实现
创建协议文件之后,可以进一步修饰
第一种:用 required修饰协议内容: 一旦用required修饰之后就必须要被实现,否则崩溃
第二种:用optional修饰,他是可选择实现,也就是选择性的,不强制实现
// 一个类向要成为代理,必须要遵循协议的位置,写在其父类的后面,使用一对尖括号即可
相关文章推荐
- IOS准备
- ios 防止按钮快速点击造成多次响应的避免方法。
- iOS——结构体指针
- iOS——指针进阶
- iOS——内存动态分布
- iOS——函数
- iOS——指针
- iOS——结构体
- iOS——一维数组
- ios开发常用的宏定义
- iOS开发中的公共方法
- 对iOS锁的一些研究
- iOS同步对象性能对比(iOS锁性能对比)
- iOS Provisioning Profile(Certificate)与Code Signing详解
- iOS如何在多台机器上共享iOS证书
- iOS 9下的shareSDK集成的常见问题及解决方案
- animation - 6
- iOS SEL的简单总结
- iOS并发编程-锁
- iOS 开始页面实现