2010-06-30 53 views
2

瘋存儲器我的圖片選擇器被初始化,如:圖像選擇器控制器採取即使釋放

self.imgPicker = [INIT [ALLOC的UIImagePickerController]];

self.imgPicker.allowsEditing = YES;

self.imgPicker.delegate = self;

self.imgPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

介紹:

[自initImagePickerFromLibrary]; ----(這叫我之前所提到的線)

 [self presentModalViewController:self.imgPicker animated:YES]; 


     [imgPicker release]; 

蘋果儀說: 調用使用機械臂內存之前是3 Mb.While選取器在功能上12Mb.While編輯圖像28Mb和我的應用程序崩潰。任何人都找到了解決方案?

回答

3

想到的一件事是,你在做self.這可能意味着你的圖像選擇器保留兩次。一次,因爲你正在分配它,一次因爲你正在使用setter。

@property線條對於imgPicker是什麼樣的?它有retain?如果確實如此,則應將上述第一條報價中的第一行更改爲:

imgPicker = [[UIImagePickerController alloc] init]; 

即,刪除self.

同樣在你的第二行,你直接發佈imgPicker。如果您@property確實有保留,則應該只是做:

self.imgPicker = nil; 

的原因是@property合成保留,當你將它們釋放的對象。如果releaseimgPicker未將其設置爲nil,然後稍後嘗試將其設置爲新值,則系統將嘗試release已發佈的對象,並可能發生崩潰。以上和做的一樣:

[imgPicker release]; 
imgPicker = nil; 
相關問題