有个问题想交流一下
我定义一个属性
@property (nonatomic, setter=_set_name:) NSString *Name;
使用默认 @synthesize 进行实现
但是我没有实现_set_name:方法,系统也能通过.name进行正确赋值,而不是调用resolveInstanceMethod查询未实现方法。感觉是默认分配一个KVC方法赋值。
这个副作用是否可靠,有没有相关的资料
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
当你在property中使用setter指定了一个你自定义的set方法后,你会发现原来的setName:(就那你的name来说)方法已经不存在了,即当调用
[xxx setName:@"name"]时编译器会报错。然后,你可以在你的类中实现_set_name: 方法,你会发现,当你使用xxx.name进行赋值的时候,实际上是使用了_set_name:来赋值,而不是原来的setName: 方法了。