[問題] 什麼時候該retain呢

看板MacDev作者 (肉元,吉米,助教)時間14年前 (2010/10/14 17:44), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串1/5 (看更多)
雖然說這似乎是很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)

10/14 18:29, , 1F
不是很看得懂第三行和第四行的因果關係Orz
10/14 18:29, 1F

10/14 21:10, , 2F
千萬不要造成retain cycle...
10/14 21:10, 2F
文章代碼(AID): #1Cjj41MW (MacDev)
文章代碼(AID): #1Cjj41MW (MacDev)