[黑马IOS自学第十六篇]OC分类学习

分类的作用:

在不修改原有类的基础上增加新的方法,把一个庞大的类分模块开发,一个庞大的类可以由多个人编写,更有利于团队合作

计算机生成了可选文字:1) 对 现 有 比 如 , 你 可 以 扩 展 Cocoa touch 框 架 中 的 类 , 你 在 类 别 中 增 加 的 方 法 会 被 了 类 所 继 承 , 而 且 在 运 行 时 跟 其 他 的 方 法 没 有 区 别 。 2 ) 作 为 了 类 的 替 代 手 段 不 需 要 定 义 和 使 用 一 个 了 类 , 你 可 以 通 过 类 别 百 接 向 己 有 的 类 里 增 加 方 法 · 3 ) 对 类 中 的 方 法 归 利 用 category 把 一 的 类 划 分 为 小 块 来 分 别 进 行 开 发 , 从 而 更 好 的 对 类 中 的 方 法 进 行 更 新 和 维 护 。


先声明分类---实现分类 --- --使用分类,类名+扩展方法,分类不能继承父类

分类,不修改源文件的基础上,给类增加新的功能

计算机生成了可选文字:Choose options for your new file: Previous Next File: File Type: Class: Cancel PlayGame Category Person

1.分类只增加方法,不能增加成员变量和 @property

2.分类中可以访问原来的实例变量

3.在分类中和类有同名的方法,优先访问分类的方法,原类的方法被忽略掉

4.多个分类,每个分类都由同名方法,执行访问的是最后便已的那个类别的同名方法

计算机生成了可选文字:Build Settings Target Dependencies (O items) Build Phases Build Rules Compiler Flags Compile So s (4 items) Name m Person+study.m in 14- (Category) m Person.m ...in 14- (Category) in 14- (Category) m main.m m Person+pIayCame.m in 14- (category) Link Binary With Libraries (O items) Copy Files (O items)

编译顺序


非正式协议:通常定义为NSObject类的类别

即凡NSObject或Foundation框架增加的类或其子类的类别,都是非正式协议

一般只给NSObject的子类添加类别

类的延展又称为扩展extendsion

category的一个特例

类的匿名实现

延展的方法不能通过类别去实现


@implementation Person()
 
@end


私有方法通过self去调用

#import"Person.h"
 
@interfacePerson()
-(void)run;
@end
 
@implementation Person
-(void)run{
    NSLog(@"run");
}
-(void)work{
    NSLog(@"work");
}
-(void)test{
    [selfrun];//私有方法通过self调用
}
@end

计算机生成了可选文字:O 类 别 中 只 能 增 加 方 法 @是 的 , 你 没 着 错 , 类 扩 展 不 仅 可 以 增 加 方 法 , 还 可 以 增 加 实 例 变 量 ( 或 者 合 成 性 ) , 只 是 该 实 变 量 默 认 是 私 有 类 型 的 ( 作 用 范 只 能 在 自 身 类 , 而 不 是 了 类 或 其 他 地 方 ) . @类扩展 中 声 明 的 方 法 没 被 实 现 , 编 译 器 会 报 警 , 但 是 类 别 中 的 方 法 没 被 实 现 编 译 器 是 不 会 有 任 何 警 告 的 。 这 是 因 为 类 扩 廢 是 在 译 阶 段 被 添 加 到 类 中 , 而 类 别 是 在 运 行 时 添 加 到 类 中 @类扩展 不 能 像 类 别 那 样 拥 有 独 立 的 实 现 部 分 (@implementation 部 分 ) , 也 就 是 说 , 类 扩 廢 所 声 明 的 力 法 必 续 歙 托 对 应 类 的 实 现 部 分 来 实 现 · @定 义 在 .m 文 件 中 的 类 扩 展 方 法 为 私 有 的 , 定 义 在 .h 文 件 ( 头 文 件 ) 中 的 类 扩 展 方 法 为 公 有 的 。 类 扩 展 是

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REaDME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、资源1项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值