3

假设我创建了一个 viewController。然后我想创建另一个类似于第一个的 viewController。看起来像继承的工作。

但是,originalViewController 的许多任务都是私有方法,我想最小化公共接口。

如果我将这些方法声明为公开,那么将无法实现将私有内容保密的目标。

如果我将这些方法声明为私有,那么子类将不知道这些方法。

如果我为子类创建一个特殊的 .h 文件,那会很尴尬。

那么无论如何,做这种事情的行业标准方式是什么?

在 C++ 中,我们会使用受保护的方法或函数来完成这项工作吗?

更新:

我放

#import "BGGoogleMap+protected.h"

@implementation BGGoogleMap ()

@end

它不起作用。它要求标识符。

4

2 回答 2

4

除了 Catfish_Man 的建议之外,您还可以在您的类中创建只有您的子类可以访问的类别。这是有关如何执行此操作的文档。基本上,您只需为您的类创建一个新接口并将任何私有方法放入其中。像这样:

@interface MyClass (MyClass_Private)
// Method declarations
@end

将它们放在 Foo_Internal.h 中,并将 Foo_Internal.h 包含在您的子类中,但不要公开。

于 2012-11-28T02:48:46.450 回答
3

将标头拆分为 Foo.h 和 Foo_Internal.h 听起来是最好的方法。

于 2012-11-28T02:46:03.203 回答