我想在BaseObject中声明一个方法,而这个方法只由SubObject实现,我该怎么做呢?我发现@protected被允许在方法上使用。
发布于 2013-01-05 13:32:30
一种解决方法是创建一个包含私有接口类别的私有头文件,如下所示:
//MyClass.h
@interface MyClass : NSObject
- (void)publicMethod;
@end
//MyClass_private.h
@interface MyClass ()
- (void)protectedMethod;
@endM及其子类导入regular和_private标头,赋予_private声明与protected相同的作用域。该层次结构的客户仅使用常规标头。
发布于 2013-01-05 11:19:20
No protected仅允许用于变量,不允许用于方法
发布于 2013-01-05 11:28:05
objective-c不显式地支持受保护的方法。
为了模拟受保护的方法,我只是不在头文件中包含函数定义。这允许子类实现该方法,并且不允许该方法被外部调用(也称为。"protected")。
https://stackoverflow.com/questions/14168215
复制相似问题