我想我錯過了有關屬性屬性的內容。 首先,我不明白retain
和assign
之間的區別。Objective-C屬性 - 保留和分配之間的區別
如果我使用assign
,那麼屬性是否會將retain
計數器增加1到setter和getter,我是否需要使用release
來達到這兩個效果?
這是如何與readwrite
或copy
一起使用的?從計數的retain
的角度來看。
我想明白當我需要一個屬性(setter和getter)
@property (readwrite,assign) int iVar;
工作後使用release
什麼assign
在這裏做?
之間有什麼區別:
@property (readwrite,assign) int iVar;
和
@property (readwrite,retain) int iVar;
和
@property (readwrite) int iVar;
非常感謝......
所以如果我理解正確 1.只讀指針並返回一個指針沒有改變計數器? 2.當我使用assing我只是得到指針的對象,並沒有保留,所以如果對象將釋放我會失去他? 並保留這不是這種情況? 3.至於副本我瞭解setter使計數1的新對象,並且getter只是返回指針? 那麼當我使用retain屬性時,getter的情況如何,我聽說過關於autorelease指針的一些東西? – Amir 2010-06-07 13:41:53
我澄清了我的答案。有兩種說明符:一種涉及屬性的訪問方式('readwrite','readonly'),另一種涉及屬性如何處理內存('assign','retain','copy') 。你需要使用兩者,它們是正交的('readwrite'屬性可以是'retain','assign'或'copy') – pgb 2010-06-07 14:10:30