分类和扩展的区别

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容