假设我创建了一个 viewController。然后我想创建另一个类似于第一个视图控制器。看起来像是一份继承的工作。
然而,原始ViewController的许多任务都是私有方法,我想最小化公共接口。
如果我将这些方法声明为公开的话,那么就达不到私有的目的了。
如果我将这些方法声明为私有,那么子类将不知道这些方法。
如果我为子类创建一个特殊的 .h 文件,那就很尴尬了。
那么,做这类事情的行业标准方法是什么?
在 C++ 中,我们会使用受保护的方法或函数来完成此操作,对吗?
Update:
I put
#import "BGGoogleMap+protected.h"
@implementation BGGoogleMap ()
@end
这不起作用。它要求提供标识符。
除了 Catfish_Man 的建议之外,您还可以在类上创建只有您的子类可以访问的类别。这是文档 http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/objectivec/chapters/occategories.html如何做到这一点。基本上,您只需为您的类创建一个新接口并将所有私有方法放入其中。像这样:
@interface MyClass (MyClass_Private)
// Method declarations
@end
将它们放在 Foo_Internal.h 中,并将 Foo_Internal.h 包含在您的子类中,但不要将其公开。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)