假设我想让一个类的私有方法只对该类的实现可见,以便该类的接口只公开需要公开的内容。在一些最新版本的 Xcode 中,我可以简单地通过在标头中省略方法的声明来做到这一点。但是,一本好书建议我还应该在实现文件中声明一个类别并在其中声明该方法,如下所示:
// [in MyClass.m]
#import "MyClass.h"
// category declaration - is it really required?
// edit: it's a class extension declaration, I know, but it doesn't change much
@interface MyClass ()
- (void)myPrivateMethod;
@end
@implementation MyClass
- (void)myPrivateMethod
{
// do something
}
// all methods here can call myPrivateMethod
@end
事实上,它确实可以编译和工作。此外,它确实可以在没有类别/扩展声明部分的情况下编译并正常工作。这提出了一个自然的问题:
如果我有一堆私有方法,我需要在一个类别中声明它们吗?最佳做法是什么?