------
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)分类可以访问原来类中的成员变量
3)如果分类和原来类出现同名的方法,优先调用分类中的方法, 原来类中的方法会被忽略
2、分类的编译顺序
最下面的是最后编译,当多个分类中有同名方法,则执行最后编译的文件方法
总结:
1,如果分类中有和类本身同名的方法,优先会调用分类中的同名方法;
2,如果多个分类中有同名的方法,执行哪个分类的方法,取决于编译的顺序,最后编译的那个分类中的方法会执行。