我有一个关于Apple的一些示例代码的基本问题。在.m文件中,类声明如下所示:
@interface MyMovieViewController (OverlayView)
[...]
@end
@interface MyMovieViewController (ViewController)
[...]
@end
@implementation MyMovieViewController(ViewController)
[...]
@end
@implementation MyMovieViewController (OverlayView)
[...]
@end
@implementation MyMovieViewController
[...]
@end
完整代码here。
似乎括号内的内容(“OverlayView”和“ViewController”)只是帮助分解代码并使其更具可读性,但实际上不会影响代码的执行。但我不想误解一些重要的东西,所以我想我会检查以确保。
我的理解是对的吗?谢谢!
答案 0 :(得分:22)
这些名为Categories
,允许您为类添加更多功能。
类别允许您将方法添加到现有类 - 甚至是您没有源的类。类别是一个强大的功能,允许您在不进行子类化的情况下扩展现有类的功能。使用类别,您还可以在多个文件中分发您自己的类的实现。类扩展类似,但允许在除主类@interface块之外的位置为类声明其他必需的API。
答案 1 :(得分:4)
这些是“类别”。
通过添加方法,您可以扩展任何Objective-C类,这些方法将应用于该类的所有对象。
此处有更详细的文章:http://macdevelopertips.com/objective-c/objective-c-categories.html