[英]Beginner's Objective-C Syntax Question
我从 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
扩展了ApplicationCell
,那么CompositeSubviewBasedApplicationCellContentView: UIView
是什么意思?
提前致谢。
这是另一个 class 的定义。 在大多数情况下,这将在一个单独的文件中,但也可以在一个文件中定义多个类,特别是如果它们密切相关。
CompositeSubviewBasedApplicationCellContentView
可能不被任何类使用,除了CompositeSubviewBasedApplicationCell
,所以它不需要有自己的 header 文件。
CompositeSubviewBasedApplicationCell
和CompositeSubviewBasedApplicationCellContentView
是两个不同的类。
我不太明白为什么在实现文件中有另一个@interface 声明。 我认为这是一种声明私有实例变量的方式。 我对吗?
是的,这是使 class 完全私有的一种方法。 如果有人希望它是部分私有的,他们可以像这样在实现文件中扩展它:
@interface CompositeSubviewBasedApplicationCell()
@end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.