作者Gsus (肉元,吉米,助教)
看板MacDev
標題[問題] 什麼時候該retain呢
時間Thu Oct 14 17:44:30 2010
雖然說這似乎是很common的問題
但是我還是覺得應該問一下:
如果物件A在傳someObject給物件B (ex: initWithSomething:(id)someObject)
"通常"我們會在物件B中retain someObject
但是如果是在以下狀況下,不知道是否也是一樣會要retain呢?
(以下狀況someObject都是一個local ivar)
1. 在同一物件中,methodA call [self methodBWithSomeObject:someObject];
methodB中需要retain someObject嗎?
2. 在同一/不同物件中, 用
[xxx performSelector:@selector(methodB) withObject:someObject];
methodB中需要retain someObject嗎?
3. 傳someObject給某個class method, class method中需要retain someObject嗎?
4. IBAction, 有時候會把sender也傳過來, 這種情況下也要retain sender嗎?
像4. 好像很少有人這樣寫, 看stanford的course似乎也沒這樣做
現在想想有點混亂了,什麼時候該retain什麼時候不用....QQ
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.136.161.134
※ 編輯: Gsus 來自: 114.136.161.134 (10/14 17:47)
推 stuiroov:不是很看得懂第三行和第四行的因果關係Orz 10/14 18:29
推 aecho:千萬不要造成retain cycle... 10/14 21:10