2012-11-06 80 views
1

我正在研究基於ARC的項目。我的網點宣佈使用
unsafe_unretained屬性。每當我使用這些網點時,我都會在自己的代碼中隨處使用self.outletname
。但是我聽到有人說,使用self會增加保留計數的數量,我們應該只將它用於強屬性。我很困惑。我們不應該使用自己的弱財產?何時使用自我。設置變量時使用前綴?

+1

哪裏有人說「使用自己會增加保留 計數」? – Mark

+0

'self.propertyName = newValue'只會增加'newValue'的保留計數,如果它是保留屬性的話。使用ARC,無論如何您都不必擔心。 –

+0

我指的是我的同事。如果它錯了,我很抱歉。我是新手 – Raj

回答

0

self.propertyName = newValue只會增加保留計數newValue,如果它是保留的屬性。

+0

這是非常不完整的。點符號('self.whatever')是屬性的語法。屬性只是一對getter和setter方法。而已。你在調用一個方法。它不必與實例變量或保留有任何關係。您可以(或者在最近的版本中,編譯器可以自動)*根據您選擇的實例變量合成* getters和setters。合成的getter/setter所做的取決於屬性的聲明方式。如果聲明爲「retain」,那麼setter將釋放前一個值並保留新值。 – newacct

+0

TLDR:self.propertyName = newValue只會增加newValue的保留計數(如果它是保留屬性)。 –