类别,类扩展。
向已经存在的类添加方法或属性,在很多情况下,创建category由于创建子类。新添加的方法同样也会被被扩展的所有子类继承。
优点
1、在不创建继承类的情况下,实现对已有类的扩展
2、将常用的相关方法分组
3、在没有源代码的情况下,可以用来分组
当然,category也可以用来调试。
这个地方还是要提一下类别(Category)和类扩展(Extension)。
类别是类的扩展,类扩展就只是类.m文件中添加的 @interface,也就是在.m文件中添加属性和方法名
还有一个栗子:
// .h
@interface BaseClass : NSObject
@property (readonly) NSString *privateString; // 该.h文件对外公开
@end
// .m
@interface BaseClass() // 该.m文件对外是不公开的, 当然这里也可以放在专门的一个.h文件中,但同样不把这个文件进行公开。
@property (readwrite) NSString *privateString;
@end
网友评论