Re: [問題] 簡單的程式就有 memory leak 了
※ 引述《darktt (小朱)》之銘言:
→
04/16 11:42,
04/16 11:42
→
04/16 11:42,
04/16 11:42
實際上 Foundation 裡面怎麼做我是不知道啦, 但這是 Cocotron 的源碼
http://d.pr/B3bo
-(oneway void)release {
if(NSDecrementExtraRefCountWasZero(self))
[self dealloc];
}
這是蘋果開源的 Objective-C Runtime 源碼
http://www.opensource.apple.com/source/objc4/objc4-532/runtime/NSObject.mm
- (oneway void)release
__attribute__((aligned(16)))
{
// tagged pointer check is inside _objc_rootReleaseWasZero().
if (_objc_rootReleaseWasZero(self) == false) {
return;
}
[self dealloc];
}
如果 release 之後 ref count 是 0 就會直接呼叫 dealloc 進入自爆程序了
沒記錯的話, 蘋果的文件也是說 ref count 一旦降到 0 就會立刻毀滅
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.94.57
※ 文章網址: http://www.ptt.cc/bbs/MacDev/M.1397627628.A.E0C.html
※ 編輯: uranusjr (140.112.94.57), 04/16/2014 13:56:54
→
04/16 14:05, , 1F
04/16 14:05, 1F
→
04/16 14:06, , 2F
04/16 14:06, 2F
→
04/16 14:07, , 3F
04/16 14:07, 3F
→
04/16 14:10, , 4F
04/16 14:10, 4F
→
04/16 14:11, , 5F
04/16 14:11, 5F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 4 篇):
MacDev 近期熱門文章
PTT數位生活區 即時熱門文章