#import <Foundation/Foundation.h>
@interface Person : NSObject
- (void)test;
@end
@implementation Person
- (void)test
{
NSLog(@"Person - test");
}
/*
//Category 分类
//分类:可以给某个类扩充一些方法(不能修改原来类的代码)
//声明
@interface 类名(分类名称)
@end
//实现
@implementation 类名(分类名称)
@end
*/
//声明
@interface Person (ZY)
- (void)study;
@end
//实现
@implementation Person(ZY)
- (void)study
{
NSLog(@"在自习室学习");
}
@end
int main (int argc, const char *argv[])
{
Person *p = [[Person alloc] init];
[p test];
[p study];
return 0;
}
/*分类的作用:在不改变原来类内容的基础上,可以为类增加一些方法
注意:1.分类不能增加成员变量
2.分类方法实现中可以访问原来类中声明的成员变量
3.优先去分类中查找,然后再去原来类中找,最后再去父类中找
分类可以重新实现原来类中的方法。但是会覆盖原来的方法,会导致原来的方法没法再去实现
两个分类调用优先级:跟文件编译的顺序有关,后编译的会覆盖之前编译的。
项目-> build phases -> compile sources
只编译 .m 文件
*/
objective-c 分类
最新推荐文章于 2022-12-13 23:05:07 发布