目标C:强制使用吸气剂和固定剂?

时间:2012-09-10 18:02:06

标签: objective-c setter getter

我注意到,当我在Objective C中为属性创建自定义getter / setter时,我经常忘记使用self.variableName来访问我的属性,而是访问它直接使用variableName,这会破坏getter和setter的目的(并且可能会导致后来的bug很难跟踪)。

现在,明显的解决方法是“停止忘记包含self.

但是,有没有办法删除对实例变量的直接访问(可能在声明属性时?)以避免意外不使用getter和setter?

不要误解我的意思,有时能够直接访问实例变量并避免使用getter和setter是很好的,但有时当我编写自定义getter和setter时,重要的是这些getter和setter会被使用每次都不要忘记。

同样,明显的答案只是记住使用self.,但特别是如果其他人正在拿起我的代码并进行处理,那么在某些情况下完全删除对实例变量的访问权将是有益的。

1 个答案:

答案 0 :(得分:3)

使用前缀为_的实例变量。这是Apple推荐的,它是合成属性和发明实例变量默认功能所做的,它使_在你使用时突然出现。在您自己的实现中,不可能删除对您自己的实例变量的访问权。