0

这可能是一个非常愚蠢的初学者问题,但是:

如果你的类中有一些不错的实例变量,例如 UIScrollview *scrollView2,那么你为什么要通过放弃一个来绕过 getter 和 setter

[self.scrollView2 addSubview:imageView];

, 而是做一个

[scrollView2 addSubview:imageView]; 

? 我的意思是......越过吸气剂并没有什么坏处,实际上我认为这总是要走的路。但在所有苹果的例子中,我到处都怀念这种模式。他们在调用方法时很少使用 self.someInstanceVariable。还是我做错了什么?

自从苹果做以来我就开始做同样的事情,但我想知道:为什么?

4

3 回答 3

3

它与KVO(Key-Value Observing)KVC(Key-Value Coding)有关。如果绕过 getter 或 setter,观察值的对象将不会收到消息。

于 2009-05-07T17:12:05.197 回答
2

我曾经也绕过 getter/setter,直到我发现直接访问变量时绑定不起作用。换句话说,键值编码仅在使用 getter/setter 函数访问属性时才有效。

编辑:有关 KVC 合规性,请参阅此页面

于 2009-05-07T16:54:53.243 回答
1

通常你不会在initor中使用属性dealloc,最好直接访问实例变量,因为你的对象可能不处于“安全”状态。

于 2009-05-07T19:08:31.970 回答