Re: [問題] 何時需要release
※ 引述《leondemon (狗狗)》之銘言:
: 感謝回應
: 所以說
: NSNumber *num1 = [NSNumber numberWithInteger: 100]; 時
: numberWithInteger中會執行alloc(retain count=1)、init其值、並self autorelease
: 然後再pool drain時 這個物件才會retain count-1 然後即被dealloc
: 我這樣的理解對嗎?
應該是, 我也沒有深入去想過到底是怎樣
我是實務上視為是這樣, 沒有問題就不管了XD
下一篇講的就順便題一下
官方上每個有 init 開頭的 method 都會有一個會 autorelease 的對應
以 NSNumber 為例, 你可以 [[NSNumber alloc] initWithInteger:i]
所以你就一定可以 [NSNumber numberWithInteger:i]
NSString 啊 NSArray 之類的也是一樣, 名稱也很顯然
在命名時官方也是建議這樣
如果一個 method 不會把 object 放進 aurelease pool
就要在 method 名稱裡寫上 copy 或 init, 反之就絕對不要, 而且最好有規則
例如有個 class 叫 Ratatouille
那就可以寫一個 + (id)initWithVegetables:
對應就要寫成 + (id)ratatouilleWithVegetables: 這樣
--
╱ ̄ ̄ ̄╲
▏◢█◣ ▏
︻█︻█ ▏ 成龍表示: 是喔...
′/ ‵ ▏
╰╯ █╱
ψQSWEET ◥︶█◤
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.72.123
推
09/04 20:31, , 1F
09/04 20:31, 1F
→
09/05 19:12, , 2F
09/05 19:12, 2F
→
09/05 19:12, , 3F
09/05 19:12, 3F
→
09/05 19:13, , 4F
09/05 19:13, 4F
→
09/05 19:15, , 5F
09/05 19:15, 5F
推
09/05 19:16, , 6F
09/05 19:16, 6F
→
09/05 19:17, , 7F
09/05 19:17, 7F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 5 之 5 篇):
MacDev 近期熱門文章
PTT數位生活區 即時熱門文章