2009-08-25 96 views
1

我有什麼,我不理解在iPhone上的內存管理一個簡單的例子:另一個iPhone內存泄漏問題!

- (IBAction)AssignAndReleaseOne :(id)sender { 
    for (int i=0;i<10;i++) { 
     someString = [[NSString alloc] initWithString:@"String Assigned"]; 
    } 
    [someString release]; 
} 

- (IBAction)AssignAndReleaseTen :(id)sender { 
    for (int i=0;i<10;i++) { 
     someString = [[NSString alloc] initWithString:@"String Assigned"]; 
     [someString release]; 
    } 
} 

我希望得到的第一種方法中的內存泄漏,因爲我的Alloc 10倍(或者是11 :)只有一個版本,但Instruments不報告任何錯誤?

我還是儀器正確?

謝謝克里斯。

回答

2

你不會得到泄漏,足夠令人驚訝。請參閱:

Memory issue of NSString

+0

非常好。謝謝。啊哈 - 生活又回到了簡單的邏輯:) – Chris 2009-08-25 07:29:32

+0

我第一次遇到這個問題,它也讓我產生了一個循環。更是如此,因爲我試圖測試如何檢測內存泄漏! – 2009-08-25 07:48:04

0

你應該得到你期望的內存泄漏。儀器的泄漏檢測算法運行起來很昂貴,所以它只能在指定的時間量後執行(我認爲它默認爲10秒)。儀器在泄漏之前可能需要讓應用程序運行一段時間。

+0

是的,謝謝,我已經完成並手動刷新。 – Chris 2009-08-25 07:28:37