父类(super class)Resource
@interface Resource : CoderObject
@property (strong, nonatomic) NSString *resourceID;
@property (assign, nonatomic) ResourceType resourceType;
@property (assign, nonatomic) DataType dataType;
@end
子类 ViewResource
@interface ViewResource : Resource
@property (strong, nonatomic) CustomView *view;
@property (strong, nonatomic) UIViewController *viewController;
@end
在子类ViewResource
的init
方法中如何访问Resource
的变量dataType
?现在我尝试只使用 super.dataType = ...
还有其他方法吗?
最佳答案
你只需要使用self.dataType
。您的子类对 .h 文件中定义的所有父类(super class)属性具有完全可见性。使用 self.xxx
还使您能够在将来需要时覆盖访问器方法,而无需返回编辑所有使用代码。
看看你下面的链接,很公平。这些都是有效的观点。访问器不应该有副作用,但你不能保证它们不会。如果该属性定义为父类(super class),那么您有几个选择:
- 使用
self.xxx
设置属性,尽量保证无副作用 - 调用 super 的 init 方法,传递所需的参数,并在那里设置它们
关于ios - 如何在 init 方法中访问父类(super class)的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16622776/