分类和扩展的区别

2018-06-28  本文已影响9人  张俊凯

分类 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

上一篇 下一篇

猜你喜欢

热点阅读