1.Category和Extension都是用来给已定义的类增加新的内容的。
2.Category和原有类的耦合更低一些,声明和实现都可以写在单独的文件里。但是只能为已定义类增加Method,而不能加入成员变量。
3.Extension耦合比较高,声明可以单独写,但是实现必须写在原有类的@implementation中。可以增加Method和成员变量。
下面这里是翻译的objective-c-primer.pdf 中的相关资料,可以对这两个概念有一个初步了解。
理解了Category,Extension就不难理解了。Extension是Category的一个特例,其名字为匿名(为空),并且新添加的方法一定要予以实现。(Category没有这个限制)
本文探讨了Objective-C中Category和Extension的区别与联系。Category提供了一种为现有类添加方法而不修改原始代码的方式,适用于增加功能同时保持低耦合。Extension则允许在类的@implementation中添加方法和成员变量,耦合度较高。理解Category有助于更好地掌握Extension的使用。
810

被折叠的 条评论
为什么被折叠?



