Предположим, я хочу, чтобы частный метод класса был видимым для реализации этого класса только так, чтобы интерфейс класса предоставлял только то, что необходимо раскрыть. В некоторых последних версиях 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
Действительно, он компилируется и работает. Более того, он компилируется и отлично работает без части объявления категории / расширения. Возникает естественный вопрос:
Если у меня есть несколько частных методов, нужно ли мне объявлять их все в категории? Что было бы лучше всего?