在上一个版本的ox xCode(4.3)中,我看到了预定义模板(例如我们的主/明细模板),其中在.m文件中进行了接口声明.例如,在文件MyFile.h中有:
@interface MyFile
@property (nonatomic, retain) NSString *someProp;
@end
Run Code Online (Sandbox Code Playgroud)
在MyFile.m文件中有:
@implementation MyFile
@interface MyFile {
NSString * anotherProp;
}
- (id) init...
Run Code Online (Sandbox Code Playgroud)
为什么这样做?为什么没有将anotherProp声明为MyFile.h文件?
提前致谢
好吧,它没有这样宣布,但这样: -
@interface ClassName() {
Declarations;
}
Methods;
@end
Run Code Online (Sandbox Code Playgroud)
这些被称为类扩展.它们类似于类别,但只能在类的实现中声明,而不能在任何其他类中声明.扩展的使用是重新声明属于public或readwrite的属性,如果需要也声明更新的属性.只需允许您在@interface以外的位置声明属性和变量,因此名称为extensios.
它被用来解决类别问题,因为它们使方法公开并且类的数据隐藏能力得到补偿,但类扩展有效地扩展了类的主要接口,声明的方法具有与类的公共主要类中声明的方法相同的要求.接口.
归档时间: |
|
查看次数: |
6026 次 |
最近记录: |