这种语法与接口声明有什么关系?

时间:2014-11-15 00:04:16

标签: objective-c interface

这是来自游戏教程的初学者项目中的ViewController.m文件。

@interface ViewController()

//irrelevant stuff omitted

@end

ViewController()位使我感到困惑。我理解公共和私有接口之间的不同,但我现在还没有在Objective-C中使用私有接口。对于公共界面,我习惯于看到这样的东西:

@interface ViewController : UIViewController

那么为什么现在只是第一个,括号,没有继承符号?

1 个答案:

答案 0 :(得分:2)

那是class extension。它允许声明额外的接口,通常是私有的,因为它位于实现(.m)文件中。它类似于一个类别,除了编译器将要求您为其中声明的任何接口提供实现。 (即使没有提供任何实现,类别也可以声明接口。)