iOS使用KVC对对象的属性强制赋值
在OC中,可以给类添加一个属性@property
可以设置属性的特质,例如nonatomic,atomic,weak,strong,copy,assign等
如果这个属性不愿意被其他对象随便改变的话,可以添加readonly属性,这样一来,就只能在对象内部设置这些属性了
不过,在对象外部,仍能使用KVC技术设置这些属性。
比如说,我们自定义一个Person类,拥有一个readonly的name属性

打印结果是

说明,使用kvc对p的name属性强制赋值成功
不过,这样子的话,等于违规绕过本类提供的相关API。开发者如果使用这种技术,需要自己应对可能出现的问题

浙公网安备 33010602011771号