我发现很难相信没有straightforward的方式来声明其在.m文件中的受保护属性(以避免使用只有子类需要了解的变量来污染.h文件)。有没有一种方法让baseClass声明受保护的变量而不污染.h文件?
代码来表达,我想做到这样的事:
// SuperClass.h
NOTHING!
// SuperClass.m
@interface SuperClass
@property (nonatomic, retain) variable;
@end
// SubClass.m
// do something with variable
更新:这种在UIGestureRecognizer发生的..看subclassing notes:
您可以创建一个UIGestureRecognizer识别 独特手势的子类,例如“复选标记”手势。如果您要创建这样一个具体的手势识别器,请确保导入 UIGestureRecognizerSubclass.h头文件。该标题声明 子类必须覆盖,调用, 或重置的所有方法和属性。
从Carl Veazey:基本想法是,所有的属性/方法的子类应该知道的被封装在一个单独的.h文件中。我想这解决了一个不同的方式污染问题。
您的派生类究竟如何知道'm'文件中的内容? '.h'和'.m'文件的整个想法是提供一个*定义*然后一个隐藏*实现*。 – 2013-04-30 08:56:24
我想我明白你在说什么..所以,让我们说,公司x正在销售一段代码,他们只显示.h文件并隐藏其他所有内容..这段代码的使用者必须知道什么变量/方法他们可以继承.. – abbood 2013-04-30 09:00:26
@ Moo-Juice请参见 – abbood 2013-04-30 12:14:28