2

在我的菜鸟头脑和程序中,当我为一个类创建一个类别时,我在一个新文件中创建它

NSArray+Shuffle.h and .m

但我注意到,当我创建例如一个 ViewController 时,

我在实施中有:

@interface PingusViewController ()

@end

@implementation PingusViewController
...
@end

所以我的问题是:

是什么

@interface PingusViewController ()

@end

部分?,这是用于类别吗?或者有什么用?,如果是用于类别,为什么在这里使用它而不是在一些新文件中?

谢谢!

4

1 回答 1

2

它被称为类扩展

将其视为类的私有声明的常规位置。

它通常在实现文件而不是头文件中声明,因为声明被认为是私有的,并且@implementation只对类可见。

OTOH 类别是作者通常用来扩展类的公共接口的接口。声明是相似的——毕竟,类扩展只是一个未命名的类别,但应用程序是不同的(按照惯例)。

于 2012-04-11T05:52:00.973 回答