关于使用ivar变量而不是getter的好处

时间:2012-01-26 14:34:33

标签: instance-variables getter

虽然我使用的是Objective-C语法,但问题与语言无关。

假设以下声明

@synthesize activities = _activities;

self.activities将调用getter,_activities将检查已分配的值。据我所知,这个赋值的主要好处是可以清楚地区分调用setter和调用局部变量的时间。

虽然这很好,使用ivar与使用getter方法的真正实际好处是什么?

我能想到一个,其他是什么?

  • 我认为使用ivar比调用getter更快,但与触摸事件相比,差异可以忽略不计。

1 个答案:

答案 0 :(得分:1)

直接访问实例变量意味着绕过合成访问器提供的任何原子性保护和内存管理。如果您在这样做时很清楚,那么审核此类访问权限会更容易,以确保您自己正在关注班级行为的这些方面。