0
我有一個工作程序,但我遇到「堆內存增長」 我已經把範圍縮小到這些方法如下保存和加載UIImage的數據造成了巨大的內存問題
基本上我已經從庫中拍攝的圖像問題,導入到我的應用程序,並且正在使用的方法爲「重新加載」它的每用戶訪問頁面
我需要7張圖片做到這一點時間,所以內存管理勢在必行
///saves the image ///
if(imagepicked==2)
{
NSData *imageData = UIImagePNGRepresentation(image);
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filename = [documentsDirectory stringByAppendingPathComponent:@"face.png"];
[imageData writeToFile:filename atomically:NO];
///loads the image ///
NSString *cachedImagePath3 = [cachedFolderPath1 stringByAppendingPathComponent:@"face.png"];
UIImage *image3 = [UIImage imageWithData:[NSData dataWithContentsOfFile:cachedImagePath3]];
newfacebookimage.image = image3;
它一切正常,但c auses大內存問題
我也嘗試使用NSuserdefaults也但不能得到正確的代碼。 由於
此代碼,其本身不會引起問題(除非圖像的尺寸遠遠超過屏幕尺寸)。不過,我想知道爲什麼你要重新保存剛加載的圖像,因爲這看起來效率不高。我只能想象,如果你正在改變圖像,那麼我會檢查以確保例程正常。但我不知道你是否有更廣泛的內存問題,比如視圖控制器中的強參考週期?你確認當視圖控制器被解散時,它的'dealloc'方法真的叫了嗎?底線,問題的根源在於別處。 – Rob