【发布时间】:2016-06-21 09:54:22
【问题描述】:
如果子类定义了相同的属性名称覆盖父类,应该会出现警告:
自动属性合成不会合成属性'homeInt';它将由其超类实现,使用@dynamic 来确认意图
如果我有一个 CALayer 的子类并定义了一个名为“delegate”的属性,我将收到此警告。 但是,如果我有一个 UIView 的子类并定义了一个名为“maskView”的属性,则不会出现警告。
怎么会有这么大的区别?
【问题讨论】:
标签: objective-c
如果子类定义了相同的属性名称覆盖父类,应该会出现警告:
自动属性合成不会合成属性'homeInt';它将由其超类实现,使用@dynamic 来确认意图
如果我有一个 CALayer 的子类并定义了一个名为“delegate”的属性,我将收到此警告。 但是,如果我有一个 UIView 的子类并定义了一个名为“maskView”的属性,则不会出现警告。
怎么会有这么大的区别?
【问题讨论】:
标签: objective-c
是的,如果子类定义相同的属性名称覆盖父类:
这样做:
@implementation yourClass
@dynamic homeInt;
如果没有,
那么你应该重命名该属性。
另见:
【讨论】: