[問題] return autorelease物件何時會被release
為了之前的問題,我跑去看了 Memory Management Programming Guide
看完以後我對autorelease還是有些疑問
據我看的結論是,autorelease message是把物件放進autorelease pool裡
然後在run-loop結束時會drain pool,release pool中的所有物件
如果以這種邏輯來看
一個getter method
- (NSString *)myTitle {
NSString *aString = [[NSString alloc] initWithString:@"aString"];
return [aString autorelease];
}
應該在getter method結束時aString就應該會被myTitle的autorelease pool 給清掉了吧
但是實際上我發現getter method結束後aString不會被release
是到invoker的run-loop結束時才被release
目前卡在這,我想我的理解應該是沒錯,但是我測試的結果也不可能錯
所以就又跑上來問一下了XD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.248.9.126
※ 編輯: Gsus 來自: 111.248.9.126 (10/16 12:45)
→
10/16 12:48, , 1F
10/16 12:48, 1F
→
10/16 13:06, , 2F
10/16 13:06, 2F
→
10/16 13:06, , 3F
10/16 13:06, 3F
→
10/16 13:11, , 4F
10/16 13:11, 4F
→
10/16 15:04, , 5F
10/16 15:04, 5F
→
10/16 15:04, , 6F
10/16 15:04, 6F
→
10/16 20:41, , 7F
10/16 20:41, 7F
MacDev 近期熱門文章
PTT數位生活區 即時熱門文章