可能重复:
Difference between @interface definition in .h and .m file
What is the @interface declaration in .m files used for in iOS 5 projects?
我见过这样的代码:
// In Header.h
@interface Header{}
@end
// In Header.m
@interface Header()
@end
我的问题是:
答案 0 :(得分:12)
@interface MyClass(){
NSInteger aInt;
}
@property(nonatomic,strong) NSString *name;
@end
使用现代编译器,这是一种很好的方法,只能在MyClass类中私有化地使用方法,ivars和属性。
类扩展必须在主实现文件中声明(不在类别中)。
因此,您可以隐藏头文件中的实现细节,它们是私有的。
答案 1 :(得分:3)
这已成为为给定类声明“私有”属性/方法的常见做法。通过在.m内的匿名类扩展中声明它们,这些属性/方法不会暴露给消费对象。