可能重复:
Difference between Category and Class Extension?objective-c中无名类与普通类之间有什么区别?
我经常被告知,当你想将变量声明为私有,你会做出.m文件一个无名类。
与命名类别相比,无名类中有什么内在不同吗?
有什么区别?
可能重复:
Difference between Category and Class Extension?objective-c中无名类与普通类之间有什么区别?
我经常被告知,当你想将变量声明为私有,你会做出.m文件一个无名类。
与命名类别相比,无名类中有什么内在不同吗?
有什么区别?
你称之为“无名类”被称为“类延伸”。
一个区别是编译器期望类扩展中的声明在类'@implementation
块中定义。也就是说,当它与主要@implementation
块位于同一翻译版本中时,您不会明确声明扩展的@implementation
块。他们合并为了您的方便。因此,编译器可能会产生警告。
另一个区别是扩展可能会声明合成的属性(并因此调整类型的大小),而常规类别不能。除了属性,实例变量可以在类扩展的@interface
中声明。
除此之外,它只是约定。
类扩展也可以声明ivars,而其他类不能。 – 2012-04-18 03:33:42
Oh类扩展可以改变类型的大小。那是一件大事。现在我明白了。 – 2012-04-18 04:10:16
@BJHomer更新。谢谢。 – justin 2012-04-18 04:50:41
[类别和类扩展之间的区别?](http://stackoverflow.com/questions/3499704/difference-between-category-and-class-extension),可能重复,http://stackoverflow.com/questions/7136124 /,http://stackoverflow.com/questions/1052233/ – 2012-04-18 02:38:28