[問題] NSArray retaincount

看板MacDev作者 (@O@)時間13年前 (2011/03/31 23:04), 編輯推噓2(203)
留言5則, 3人參與, 最新討論串1/1
請問板上的大大 小弟寫了以下的程式 NSArray * test = [[NSArray alloc]init]; NSLog(@"test retain count is %d ",[test retainCount]); 結果答案出來竟然是2 !!!! 實在是不知道該怎麼解釋這個現象 我是寫在main function 前後完全沒有碰到這個物件 不是應該是 1嗎? 還是說NSArray 有什麼特性? 我知道literal 的NSString 跟空NSString 是沒有retaincount的 所以是NSArray 有什麼特性嗎? 蘋果的doc 只有提到 有alloc 的有自己release 沒有的是丟到autorelease pool 不過NSArray 是......?? 謝謝!! (如有違反版規馬上刪@@) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.192

04/01 08:23, , 1F
因為他是靜態陣列的關係吧
04/01 08:23, 1F

04/01 09:38, , 2F
因為他是空的immutable array.. 所以會被大家share囉.
04/01 09:38, 2F

04/01 09:38, , 3F
如果是mutable array就不會有這種情形發生了
04/01 09:38, 3F

04/01 11:38, , 4F
瞭解了 謝謝!! 所以所有的靜態陣列(就算裡面有物件)
04/01 11:38, 4F

04/01 11:38, , 5F
都沒有retain count 因為裡面的東西都不能動嗎?
04/01 11:38, 5F
文章代碼(AID): #1Db9W8VQ (MacDev)