有什么优点和优点使用类别的缺点?为什么&什么时候需要它们?

时间:2010-09-03 09:09:09

标签: objective-c

有什么优点和优点?使用类别的缺点?为什么&什么时候需要它们?

1 个答案:

答案 0 :(得分:6)

优点:

  • 您可以扩展您没有源的任何类,甚至是那些类。例如,查看Apple添加到NSString类的UI扩展,以便进行渲染,获取指标等。

  • 由于您可以访问所有实例变量,因此类别为您提供了一种很好的方法,可以使用逻辑分组在编译单元之间构建代码,而不是采用“必须全部在一个物理位置”的方法,例如,由Java。

缺点:

  • 您无法安全地覆盖类本身或其他类别已定义的方法。

AFAIK,如果您尝试以下内容,语言无法保证实际调用哪个实现:

@interface Foo { }
- (void) method;
@end

@interface Foo (MyCategory)
- (void) method;
@end