我的應用程序中有一個奇怪的崩潰沒有任何跟蹤。這可能是一個內存相關的問題,但信息很少&我不知道如何繼續或修復它。如果不是儀器本來就沒有線索的話。iOS應用程序崩潰,而UIImage加載(虛擬內存未清理)
我有一個圖像數組(在這個例子中是一個大小爲2的數組),其中我加載一個圖像,創建一個圖像上下文&繪製並保存到數組中。每次調用該方法時,圖像數組對象都會被新內容替換。在儀器中,我看到在此方法調用&期間顯然在每個調用內存未被清除之後非常巨大的虛擬內存使用率因此崩潰&。該項目是ARC。我將在下面列出代碼。這就是我們需要重新創建這個問題。 (我使用的圖像大小約7MB,所以它更容易重新創建崩潰)。另外我使用的是iPad2設備。
+ (UIImage *)imageCopy:(UIImage *)src
{
UIGraphicsBeginImageContext(src.size);
[src drawAtPoint:CGPointZero];
UIImage *r = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return r;
}
- (IBAction)buttonTouch:(id)sender
{
for (int i=0; i<2; i++)
{
if (i==0)
{
self.mImage = [UIImage imageNamed:@"LARGE_elevation.jpg"];
}
else
{
self.mImage = [UIImage imageNamed:@"LARGE_elevation2.jpg"];
}
// imageArray is a NSMutableArray with capacity of 2
[imageArray setObject:[ViewController imageCopy:self.mImage] atIndexedSubscript:i];
}
((UIImageView *)[self.view viewWithTag:100]).image = self.mImage;
}
這裏是一個儀器的屏幕,其中發生內存警告後第二次出現故障。
我沒有看到任何大的問題與「imagecopy的」的方法,我在這裏使用。
對此的任何幫助真的很感激。 感謝&乾杯,
「我有個圖像陣列(在該示例的陣列大小2)我在哪裏加載圖片......「」我使用的圖片大小約7MB ......「顯然,這不是一個明智之舉。 –