分类 category
给一个系统公用的类添加额外的方法时,使用category,生成NSObject+addition.h 和 NSObject+addition.m,在.h文件里声明方法,在.m文件里实现方法,括号里就是扩展的名字
#import <Foundation/Foundation.h>
@interface NSObject (addition)
@end
#import "NSObject+addition.h"
@implementation NSObject (addition)
@end
在分类中的方法如果和主类相同,会执行分类的方法,分类方法的优先级高。
扩展 extension
extension一般存在于一个自定义的类,需要添加私有属性的时候用到,存在于.m文件中,格式是
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
@end
其中 @interface 部分就叫做extension,括号里为空,extension的用途就是一个类需要添加额外的属性,但是又不让外界知道的时候使用。
完。
参考链接:https://stackoverflow.com/questions/3499704/difference-between-category-and-class-extension