初学者的Objective-C语法问题

时间:2011-07-10 15:19:04

标签: objective-c

我从Apple的文档中看到了以下代码片段。

接口非常简单:

#import <Foundation/Foundation.h>
#import "ApplicationCell.h"

@interface CompositeSubviewBasedApplicationCell : ApplicationCell {
        UIView *cellContentView;
}
@end

实施:

#import "CompositeSubviewBasedApplicationCell.h"

@interface CompositeSubviewBasedApplicationCellContentView : UIView {
    ApplicationCell *_cell;
    BOOL _highlighted;
}

@end

@implementation CompositeSubviewBasedApplicationCellContentView
//not important, abbreviated...
@end

我无法弄清楚为什么实现文件中还有另一个@interface声明。我假设它是一种声明私有实例变量的方法。我对吗?

由于界面已经说过CompositeSubviewBasedApplicationCell延伸ApplicationCellCompositeSubviewBasedApplicationCellContentView : UIView是什么意思?

提前致谢。

2 个答案:

答案 0 :(得分:4)

这是另一个类的定义。在大多数情况下,这将在一个单独的文件中,但也可以在一个文件中定义多个类,特别是如果它们密切相关。

除了CompositeSubviewBasedApplicationCellContentView之外,任何类都可能不使用

CompositeSubviewBasedApplicationCell,因此它不需要拥有自己的头文件。

答案 1 :(得分:1)

CompositeSubviewBasedApplicationCellCompositeSubviewBasedApplicationCellContentView是两个不同的类。

  

我无法弄清楚为什么实现文件中还有另一个@interface声明。我假设它是一种声明私有实例变量的方法。我是对的吗?

是的,这是让课程完全私密化的一种方式。如果有人希望它是部分私有的,他们可以在实现文件中扩展它,如下所示:

@interface CompositeSubviewBasedApplicationCell()

@end