category 和 extension区别

1.Category和Extension都是用来给已定义的类增加新的内容的。

2.Category和原有类的耦合更低一些,声明和实现都可以写在单独的文件里。但是只能为已定义类增加Method,而不能加入成员变量。

3.Extension耦合比较高,声明可以单独写,但是实现必须写在原有类的@implementation中。可以增加Method和成员变量。

下面这里是翻译的objective-c-primer.pdf 中的相关资料,可以对这两个概念有一个初步了解。

理解了Category,Extension就不难理解了。Extension是Category的一个特例,其名字为匿名(为空),并且新添加的方法一定要予以实现。(Category没有这个限制)

你可能感兴趣的:(ext)