self和_ 使用的注意事项

在 Objective-C 和 iOS 开发中,self 和 _(下划线)都与类的属性访问相关,但它们的工作机制和使用场景有重要区别

self.property

本质:调用属性的 getter/setter 方法(即 [self setProperty:value] 或 [self property])。
优点:会触发 KVO、懒加载、重写的 getter/setter 等逻辑。
常用场景:在类的外部、或需要触发 setter/getter 逻辑时使用
截屏2025-07-18 10.36.09.png

_property

本质:直接访问实例变量,不经过 getter/setter。
优点:效率高,不会触发 KVO、懒加载等副作用。
常用场景:在初始化(如 init、dealloc、setter/getter 内部)或性能敏感、明确只需操作底层数据时使用。
截屏2025-07-18 10.36.14.png

截屏2025-07-18 10.38.15.png

在 setter 方法中,使用 _model(加下划线)的写法更合理。以下是详细分析和推荐写法:

截屏2025-07-18 10.45.24.png
截屏2025-07-18 10.49.07.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容