看板 MacDev 關於我們 聯絡資訊
各位前輩大家好 最近開始研究objective-c 想寫跟iPhone有關的程式 在記憶體管理方面碰到了以下的問題 main.n的部分程式碼如下: int main(int argc, char *argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSString *str1 = @" string1!"; NSString *str2 = [NSString stringWithString: @" string2!"]; printf("str1 retain count: %x\n", [str1 retainCount]); printf("str2 retain count: %x\n", [str2 retainCount]); ...... } output: str1 retain count:7fffffff str2 retain count:7fffffff 我翻了書和網路上的文章 output為 str1 retain count:ffffffff str2 retain count:1 想請問 stringWithString不是會自動把object放入autorelease pool裡面嗎? 那retain count的值不就應該是1? 為什麼我的結果跑出來不太對? 請問我的觀念是否有錯? 還是我的程式哪裡有盲點? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.210.169