Сначала прочтите это, чтобы понять модификатор @private
Что означает "@private" в Objective-C?
А потом ответить на ваши вопросы.
Анонимная категория называется class extension
, и это то, что я использую, чтобы поддерживать мой API в чистоте и не публично анонсировать свои ивары.
1011 * например *
// .h
@interface MyClass : NSObject
@end
// .m
@interface MyClass ()
@property (nonatomic, strong) NSDate *someDateImWorkingWith;
@end
@implementation MyClass
@synthesize someDateImWorkingWith = _someDateImWorkingWith;
@end
В результате у меня есть NSDate *someDateImWorkingWith
для использования в моем классе, но никто, импортирующий мой заголовок, даже не узнает, что он существует, не сделав немного копания. Это хорошо работает для меня, ваш milage может варьироваться.