看板 MacDev 關於我們 聯絡資訊
※ 引述《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
leondemon:我是想知道為什麼iPhone下的didReceiveMemoryWarning 01/02 23:45
leondemon:為什麼書上會用setA:nil而不是單純[A release] 01/02 23:46
leondemon:在dealloc中是否把A release改成setA:nil會比較好? 01/02 23:46
leondemon:以上是在有property(retain)並synthesize的前提下 01/02 23:46
leondemon:你的回文讓我學到很多 當然要先叫聲大師 xd 01/02 23:47
leondemon:既然iPhone或許有天會開放GC功能 所以現在用setA:nil 01/02 23:48
leondemon:會比較好嗎? 01/02 23:48
Blueshiva:我是覺得你不用堅持[A release]和setA:nil誰比較好,因 01/02 23:52
Blueshiva:為在一般的情況下,兩者的功能是一樣的。搞清楚你自己 01/02 23:54
Blueshiva:class裡面在搞什麼比較重要。 01/02 23:54