發現問題的根源。這是在下面的代碼片段
UIImage *image = [UIImage imageNamed:imageFile];
cartoon = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, 40.0, 320, 280)];
cartoon.image = image ;
cartoon.backgroundColor = [UIColor brownColor];
我有圖像的100S加上每個頁面上的一些文字和用戶可以通過他們的手指輕彈(就像他們在iPhone中的照片應用做)滾動。我只在我的UIScrollView中創建3個頁面,並加載/卸載(也釋放)我明確分配的所有內容。因此,當發佈漫畫時,我只是發佈卡通UIImageView,而不是UIImage,它認爲它會被自動發佈。
但似乎它不是被自動釋放。我的應用程序獲取內存警告(我不採取任何行動),操作系統卸載我的視圖導致崩潰。
當我註釋掉兩行(下面的修改代碼片段)時,問題就消失了。沒有警告沒有崩潰。
//UIImage *image = [UIImage imageNamed:imageFile];
cartoon = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, 40.0, 320, 280)];
//cartoon.image = image ;
cartoon.backgroundColor = [UIColor brownColor];
有誰知道如何解決這個問題?當警告發生時,有沒有辦法從UIImage強制釋放內存?
沒有線索依然。也許'儀器'不能正確地報告我可能有的泄漏。是否有其他內存泄漏查找工具更可靠? – climbon 2010-03-05 15:34:49