关于为什么要通过 @synthesized 设置器(而不是直接访问 ivar)、保留/复制内存管理或 KVO 有很多内容。
但是我想不出一个很好的论据来解释为什么你会关心你是否使用foo = self.bar
, 或foo = bar
.
我唯一能想到的就是数据抽象......如果 bar 是一个声明的属性,那么底层实现可能会改变,其他人不会关心。(当然,在这种情况下,您可能不会使用@synthesized getter)
那么......使用@synthesized getter 有什么令人信服的理由吗?是否有一些线程问题使其变得重要?
就此而言,@synthesized 代码除了返回 ivar 之外还能做什么?