2

所以我注意到在我的新 Xcode 项目中,默认情况下,我的 .m 文件中有一个类用于我的类。例如,我将在 .m 文件中有这个:

@interface ViewController ()

@end

@implementation

   //Some code    

@end

我想知道是否可以在 .m 文件的类别中声明我的变量和函数,或者我应该像以前一样在 .h 文件中这样做。基本上,关于类别的最佳实践是什么。

顺便说一句,我的问题与以下链接有关,但该链接并不能完全回答我的问题。

4

1 回答 1

6

这不是一个类别,它是一个类扩展(注意空括号)。您可以在扩展中保留私有实现细节,包括私有 ivars,以将 .h 文件中的声明限制为类的接口。请注意,您只能在扩展中添加 ivars,而不能在类别中添加。

这种方法的一个非常重要的结果是,如果您需要仅用于实现的额外标头的类型的 ivars,您可以避免将该标头包含在接口的标头中,从而对您的类的用户隐藏实现依赖项。

于 2012-06-03T01:35:00.623 回答