@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
- 不能下标的值? 具有typesInt的索引
- 迦太基:如何获得给定存储库的最新版本?
- 在UIPageViewController中,当“pageViewController:viewControllerBeforeViewController”被调用?
- AutoLayout行高错误计算NSAttributedString
- 在TextView中查找CGPoint子string的位置
- GMSGeoCoder reverseGeocodeCoordinate:completionHandler:在后台线程上
- Swift iOS以编程方式在导航栏下方设置scrollView约束
- Phonegap jQuery手机文字input
- 设置UIImagePicker的委托返回错误