虽然我使用的是Objective-C语法,但问题与语言无关。
假设以下声明
@synthesize activities = _activities;
self.activities
将调用getter,_activities
将检查已分配的值。据我所知,这个赋值的主要好处是可以清楚地区分调用setter和调用局部变量的时间。
虽然这很好,使用ivar与使用getter方法的真正实际好处是什么?
我能想到一个,其他是什么?
答案 0 :(得分:1)
直接访问实例变量意味着绕过合成访问器提供的任何原子性保护和内存管理。如果您在这样做时很清楚,那么审核此类访问权限会更容易,以确保您自己正在关注班级行为的这些方面。