所以我注意到在我的新Xcode项目中,默认情况下我的.m文件中有一个类别。例如,我在.m文件中有这个:
@interface ViewController ()
@end
@implementation
//Some code
@end
我想知道在.m文件中的类别中声明我的变量和函数是否可以,或者我应该像以前一样在.h文件中这样做。基本上,关于类别的最佳实践是什么。
顺便说一句,我的问题与下面的链接有关,但该链接并不能完全回答我的问题。
答案 0 :(得分:6)
这不是一个类别,它是class extension(注意空括号)。您可以在扩展中保留私有实现详细信息(包括私有ivars),以将.h文件中的声明限制为类的接口。请注意,您只能在扩展名中添加ivars,而不能在类别中添加。
这种方法的一个非常重要的结果是,如果您需要只需要实现的额外标头的类型的ivars,您可以避免在接口的标头中包含该标头,从而隐藏类的用户的实现依赖性。 / p>