看板 MacDev 關於我們 聯絡資訊
雖然說這似乎是很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