2010-09-25 14 views
0

我知道,我們通常建議使用@property存取,而且我知道使用self.myView = x,而不是mView = x是很重要的,但是:myView.frame VS. self.myView.frame

  1. 是不是myView.frame是否足夠? TheElements中的AtomicElementFlippedView.m文件有self.wikipediaButton.frame=buttonFrame;。如果我得到/設置我的ivar的財產而不是ivar本身,我不應該離開self嗎?

  2. 它也是[self.wikipediaButton addTarget:...];。但是我不應該在這裏留下self嗎?我不應該總是在伊娃上打一個功能,而不是財產?即,[wikipediaButton addTarget:...];

謝謝!

馬特

+0

可能的重複:[應該在內部訪問實例變量時使用屬性還是直接引用?](http://stackoverflow.com/questions/3753130/should-i-use-properties-or-direct-reference-when-訪問實例變量 - 實習生)。 – 2010-09-25 18:58:54

+0

謝謝,所有。我想我現在明白了。 :) – ma11hew28 2010-09-25 20:04:04

回答

2

兩者都有效。

在類中使用getter的主要原因是代碼更改很容易。如果您決定以不同的方式存儲您的數據,或者根據請求動態構建數據,則有一個單點改變。有意見認爲它不是那麼重要大部分時間是,但是當你用一個完整的視圖層次結構(你的原始視圖可能是其中的一部分)替換該視圖時,它可以派上用場。

0

我說你想使用屬性setter,而不是直接訪問伊娃的主要原因是根本的一致性。是的,你可以直接訪問伊娃,你通常會很好。不過,我認爲在設置和獲取時使用相同的方法在風格上更好。所以如果你在內部使用屬性設置器,你也應該在內部使用屬性設置器。

相關問題