Iphone 扩展/类别而不是接口

Iphone 扩展/类别而不是接口,iphone,objective-c,ios,objective-c-category,Iphone,Objective C,Ios,Objective C Category,所以我注意到在我的新Xcode项目中,默认情况下,在我的.m文件中有一个类的类别。例如,我将在.m文件中包含以下内容: @interface ViewController () @end @implementation //Some code @end 我想知道在.m文件中声明类别中的变量和函数可以吗,还是应该像以前一样在.h文件中声明。基本上,关于类别的最佳实践是什么 顺便说一句,我的问题与下面的链接有点关联,但该链接并不能完全回答我的问题。这不是一个类别,而是一个(请

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

@interface ViewController ()

@end

@implementation

   //Some code    

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


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

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

这种方法的一个非常重要的结果是,如果您需要的IVAR类型需要仅用于实现的附加头,那么您可以避免将该头包含在接口头中,从而对类的用户隐藏实现依赖关系