·您现在的位置: 江北区云翼计算机软件开发服务部 >> 文章中心 >> 网站建设 >> app软件开发 >> IOS开发 >> 子类重写父类Property(OC)

子类重写父类Property(OC)

作者:佚名      IOS开发编辑:admin      更新时间:2022-07-23

最近在做项目时发现了一个关于@PRoperty的问题,就是子类重写父类的property问题。

于是博主就新建了个项目来测试这个问题。看图↓

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

TestClass1继承NSobject,TestClass2继承TestClass1,有个共同的属性name。

如果是这样直接设置或者访问TC2的name属性是没什么问题的,继续看图↓

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

读者可能会觉得很奇怪吧,查阅资料发现,原来在子类重写(可能用重写来说有些不当)父类的属性,编译器不会合成带下划线的属性,则需要自己手动合成setter和getter,否则这个属性将由父类实现,也就是说如果子类没有手写set和get方法,声明的@property相当于没写,这时候应该明白上图的原因了吧(Understand?)。

因为我在TC1(TC2的父类)手写了set方法

总结:当我们需要在子类重写(可能用重写来说有些不当)父类的属性的时候,最好是在子类手写set和get方法,不然你可以试试哦←_←(有不对的地方还请联系指正)

PS:听说这种情况在Xcode7下会有警告