ios - 如何在 init 方法中访问父类(super class)的变量

标签 ios objective-c

父类(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

在子类ViewResourceinit方法中如何访问Resource的变量dataType?现在我尝试只使用 super.dataType = ...

还有其他方法吗?

最佳答案

你只需要使用self.dataType。您的子类对 .h 文件中定义的所有父类(super class)属性具有完全可见性。使用 self.xxx 还使您能够在将来需要时覆盖访问器方法,而无需返回编辑所有使用代码。

看看你下面的链接,很公平。这些都是有效的观点。访问器不应该有副作用,但你不能保证它们不会。如果该属性定义为父类(super class),那么您有几个选择:

  1. 使用self.xxx设置属性,尽量保证无副作用
  2. 调用 super 的 init 方法,传递所需的参数,并在那里设置它们

关于ios - 如何在 init 方法中访问父类(super class)的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16622776/

相关文章:

objective-c - 无法在 iOS 中隐藏键盘

ios - 未调用 clickedButtonAtIndex 方法

ios - Snapchat更新状态栏iOS7更新

ios - UIScrollView 的 contentView 的高度基于使用 Storyboard 的内部内容

ios - YouTube iframe 在 iOS 应用程序中太慢

ios - 什么是控制对存储服务器调用结果的属性的访问的正确方法?

ios - 在 uitableview 单元格中快速显示你好

ios - 拖放防止多个项目同时移动

iphone - UIActivityIndi​​catorView 启动和停止

iOS - 将 tableView 中的 numberOfSections 设置为过滤单元格的数量 (Swift)