看板 MacDev 關於我們 聯絡資訊
請問板上的大大 小弟寫了以下的程式 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
markzog21:因為他是靜態陣列的關係吧 04/01 08:23
popcorny:因為他是空的immutable array.. 所以會被大家share囉. 04/01 09:38
popcorny:如果是mutable array就不會有這種情形發生了 04/01 09:38
JingXD:瞭解了 謝謝!! 所以所有的靜態陣列(就算裡面有物件) 04/01 11:38
JingXD:都沒有retain count 因為裡面的東西都不能動嗎? 04/01 11:38