@interface和@implementation指令中括号内的文字是什么意思?

我有一个关于苹果的一些示例代码的基本问题。 在.m文件中,类声明如下所示:

@interface MyMovieViewController (OverlayView) [...] @end @interface MyMovieViewController (ViewController) [...] @end @implementation MyMovieViewController(ViewController) [...] @end @implementation MyMovieViewController (OverlayView) [...] @end @implementation MyMovieViewController [...] @end 

完整代码在这里 。

看起来像括号内的东西(“OverlayView”和“ViewController”)只是在帮助分解代码并使其更具可读性,但实际上并不影响代码的执行。 但我不想误解重要的东西,所以我想我会检查确定。

我的理解是正确的吗? 谢谢!

这些被称为Categories并允许您添加更多的function到您的类。

一个类别允许你将方法添加到现有的类中,甚至可以添加到没有源的类中。 类别是一个强大的function,允许您扩展现有类的function,而无需进行子类化。 使用类别,您还可以在多个文件中分发您自己的类的实现。 类扩展是相似的,但是允许在除了主类@interface块之外的位置为类声明额外的必需API。

从苹果文档分类和扩展。

这些是“类别”。

通过添加方法,可以扩展任何Objective-C类,这些方法将应用于类的所有对象。

更详细的文章在这里: http : //macdevelopertips.com/objective-c/objective-c-categories.html