黑马程序员 - OC语言 - 【考点】分类(Category)使用注意事项

本文介绍了Objective-C中分类的使用方法及注意事项,包括不能在分类中添加成员变量、访问原有成员变量的能力、方法覆盖原则及编译顺序的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

1、分类的使用注意事项

1)分类只能增加方法,不能增加成员变量、@property(可能编译不报错,但是运行有问题)

@interfacePerson (study) @propertyint age; -(void)study;

-(void)work;

@end

#import<Foundation/Foundation.h>#import"Person.h"

#import"Person+study.h"

intmain(int argc,const char* argv[]) {

@autoreleasepool

{

Person*p = [Person new]; [p eat];

[p run];

p.age= 10;

}

return0; }

编译不报错,运行报错

2)分类可以访问原来类中的成员变量

page249image6536

 

page249image6704

 

page249image6872

page250image416

3)如果分类和原来类出现同名的方法,优先调用分类中的方法, 原来类中的方法会被忽略

2、分类的编译顺序

最下面的是最后编译,当多个分类中有同名方法,则执行最后编译的文件方法

page250image1624

 

page250image1792

 

page250image1960

 

page250image2128

page251image392

总结:

1,如果分类中有和类本身同名的方法,优先会调用分类中的同名方法;

2,如果多个分类中有同名的方法,执行哪个分类的方法,取决于编译的顺序,最后编译的那个分类中的方法会执行。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值