Objective-C 继承和类型转换

标签 objective-c ios inheritance

我有一个父类(super class) O,其属性为 UIView *view。

@interface O : NSObject
{
    UIView *view;
}

@property (nonatomic, weak) UIView *view;

@end

UIView 子类:

@interface myView : UIView

@property (nonatomic, weak) UIColor color;

然后我有一个 O 的子类,它的 init 中有以下内容:

view = [[myView alloc] init];
view.color = [UIColor redColor];

颜色是 myView 的一个属性,在一些自定义绘图代码中使用。

这会导致编译器崩溃,因为 UIView 没有属性颜色。我可以使用 setColor 方法设置该值,但如果能够通过点语法访问该属性就更好了。

有办法吗?

最佳答案

编辑:

在您的具体情况下,您需要在 .h 文件中将 view 声明为 myView *view 而不是 UIView 。然后您将可以访问自定义颜色属性。

关于Objective-C 继承和类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11753204/

相关文章:

ios - 如何在 UIView 及其 subview 中禁用点击手势(所有交互)?

ios - 自定义对象下载管理器

ios - 如何在 CollectionView 单元格中仅为一个 indexPath.row 项目设置动画?

ios - 如何从 UIImagePickerController 获取用相机拍摄的图像名称

c++ - 派生类是单例是一个好习惯吗

c++ - Swift 项目中包含 C++ 静态库的编译错误

ios - 适用于 iOS 的 Google Analytics (v3.03) - 未接收数据

ios - 试图关闭 UIViewController 时出现奇怪的问题

Java - 调用子类上的方法(在完成方法之前处理 'user code')?

python - 在没有构造函数和继承的情况下实例化 Python 类