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

27

我对苹果公司的一些示例代码有一个非常基础的问题。在.m文件中,类声明看起来像这样:

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

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

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

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

@implementation MyMovieViewController
[...]
@end

完整代码在这里

看起来圆括号内的内容("OverlayView"和"ViewController")只是用来帮助分隔代码,使其更易读,但实际上并不影响代码的执行。但我不想误解重要的东西,所以我想确认一下。

我的理解正确吗?谢谢!

2个回答

24

这些被称为分类,可以让您为类添加更多功能。

分类允许您向现有类添加方法,甚至是没有源代码的类。分类是一种强大的功能,允许您扩展现有类的功能而无需创建子类。使用分类,您还可以将自己的类的实现分布在几个文件中。类扩展也类似,但允许在主类@interface块之外的位置声明一个类所需的其他API。

摘自苹果公司有关分类和扩展的文档。


5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接