作者zonble (zonble)
看板MacDev
標題Re: [問題] property/synthesize之後...
時間Sat Jan 2 23:28:26 2010
※ 引述《zonble (zonble)》之銘言:
: 推 leondemon:所以Z大師認為用setA:nil來取代A release比較好嗎? 01/01 17:42
什麼大師,我寫程式也沒有幾年 @_@
狀況是這樣-setA: 是一個 setter,retain、release 是 ObjC
物件的記憶體管理,這兩者之間不是哪個比較好的問題,而是你
要做什麼事情。
成員變數並不等於是 property,有的時候你會需要一個 ObjC 物件
作為成員變數,但是這個變數只在 class 內部使用,而不希望讓
其他 class 取用,或是你會把這個變數宣告成 readonly 的
property,這個時候你自然就不會有 setA: 可以用了。不過,雖然
某個變數你沒有在 interface 宣告 getter/setter,但是你用
KVO 的方式還是可能可以拿到就是了…。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.44.190.100
1F:推 leondemon:我是想知道為什麼iPhone下的didReceiveMemoryWarning 01/02 23:45
2F:→ leondemon:為什麼書上會用setA:nil而不是單純[A release] 01/02 23:46
3F:→ leondemon:在dealloc中是否把A release改成setA:nil會比較好? 01/02 23:46
4F:→ leondemon:以上是在有property(retain)並synthesize的前提下 01/02 23:46
5F:→ leondemon:你的回文讓我學到很多 當然要先叫聲大師 xd 01/02 23:47
6F:→ leondemon:既然iPhone或許有天會開放GC功能 所以現在用setA:nil 01/02 23:48
7F:→ leondemon:會比較好嗎? 01/02 23:48
8F:推 Blueshiva:我是覺得你不用堅持[A release]和setA:nil誰比較好,因 01/02 23:52
9F:→ Blueshiva:為在一般的情況下,兩者的功能是一樣的。搞清楚你自己 01/02 23:54
10F:→ Blueshiva:class裡面在搞什麼比較重要。 01/02 23:54