假设我创建了一个viewController。然后我想创建另一个像第一个一样的viewController。看起来像是继承的工作。
然而,originalViewController的许多任务都是私有方法,我想最小化公共接口。
如果我公开宣布这些方法是公开的,那么私有事物私有化的目标就无法实现。
如果我将这些方法声明为private,那么子类不知道那些方法。
如果我为子类创建一个特殊的.h文件,那就太尴尬了。
那么,做这种事情的行业标准方式是什么?
在C ++中,我们会使用受保护的方法或函数来实现这一目标吗?
更新
我把
#import "BGGoogleMap+protected.h"
@implementation BGGoogleMap ()
@end
它不起作用。它要求标识符。
答案 0 :(得分:4)
除了Catfish_Man建议的内容之外,您还可以在您的类上创建只有您的子类可以访问的类别。 Here are the docs了解如何做到这一点。基本上,您只需为您的类创建一个新接口,并在其中放置任何私有方法。像这样:
@interface MyClass (MyClass_Private)
// Method declarations
@end
将它们放在Foo_Internal.h中,并在子类中包含Foo_Internal.h,但不要公开它。
答案 1 :(得分:3)
将标题拆分为Foo.h和Foo_Internal.h听起来是最好的方法。