开发者社区 问答 正文

如果property定义了setter但未实现,依然可以赋值,想询问一下这个机制是否可靠

有个问题想交流一下
我定义一个属性

@property (nonatomic, setter=_set_name:) NSString *Name;
使用默认 @synthesize 进行实现
但是我没有实现_set_name:方法,系统也能通过.name进行正确赋值,而不是调用resolveInstanceMethod查询未实现方法。感觉是默认分配一个KVC方法赋值。
这个副作用是否可靠,有没有相关的资料

展开
收起
a123456678 2016-07-27 16:03:02 2384 分享 版权
1 条回答
写回答
取消 提交回答
  • 测试
    以题主提到的Name为例,构建一个最简单的类,如下

    @interface TestObjLib : NSObject
    @property NSString *Name;

    @end
    将这个类放入一个静态库工程中,编译,用nm打印出编译出的.o文件信息

    nm TestObj.a
    结果如图
    screenshot

    2019-07-17 20:00:45
    赞同 展开评论
问答地址: