iOS面试题:子类如何修改父类中的只读属性?@synthesize 和 @dynamic 的作用

这个我也是刚刚懂一些,过程曲折,问了好多大佬,不能瞎逼逼。看代码吧


父控制器中的只读属性.png
子类中修改属性.png

很多类是抽象类,比如NSOperation,finshed excuting 等属性对外是只读,但是自身并没有实现setter方法,当子类继承NSOperation时,内部需要动态修改该属性,则需要将其变为可写。

在子类中加上一个@synthesize 属性名=_属性名; 就可以把父类中的readonly改成readwrite了

@synthesize的作用
是如果你没有手动实现 setter 方法和 getter 方法,那么编译器会自动为你加上这两个方法

@synthesize 和 @dynamic 的作用:
https://www.jianshu.com/p/beefa2da05b5

你可能感兴趣的:(iOS面试题:子类如何修改父类中的只读属性?@synthesize 和 @dynamic 的作用)