这是来自游戏教程的初学者项目中的ViewController.m文件。
@interface ViewController()
//irrelevant stuff omitted
@end
ViewController()
位使我感到困惑。我理解公共和私有接口之间的不同,但我现在还没有在Objective-C中使用私有接口。对于公共界面,我习惯于看到这样的东西:
@interface ViewController : UIViewController
那么为什么现在只是第一个,括号,没有继承符号?
答案 0 :(得分:2)
那是class extension。它允许声明额外的接口,通常是私有的,因为它位于实现(.m)文件中。它类似于一个类别,除了编译器将要求您为其中声明的任何接口提供实现。 (即使没有提供任何实现,类别也可以声明接口。)