Вы можете использовать пользовательскую категорию, например:
Stuffy.h
// The "official" header file to be used by almost anyone
@interface Stuffy {
int myMember;
}
- (void) somePublicMethod;
@end
Stuffy + Secret.h
// The magic header file, which should only be used by knowledgable people
#import "Stuffy.h"
@interface Stuffy (Secret)
- (void) _pseudoProtectedMethod;
@end
Stuffy.m
#import "Stuffy+Secret.h"
@implementation Stuffy
- (void) somePublicMethod {
// ...
}
@end
@implementation Stuffy (Secret)
- (void) _pseudoProtectedMethod {
// ...
}
@end
Подклассы Stuffy
теперь могут либо импортировать Stuffy.h
в свои файлы .m
и придерживаться общедоступного API, либо импортировать Stuffy+Secret.h
и использовать полузащищенные компоненты.
Обратите внимание, что Objective-C не имеет истинного понятия о protected
или private
методах.По сути, любой может включить Stuffy+Secret.h
и использовать материал, заявленный там.