我有一个父类(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/