2010-08-09 23 views
0

神祕(至少對我來說)問題。這是我在做什麼UIImagePickerControllerDelegate問題

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    UIImage *neoImage = [[info objectForKey:UIImagePickerControllerEditedImage] retain]; 
    NSLog(@"neoImage: %@", neoImage); 
    [self.images addObject:neoImage]; 
    [neoImage release]; 
    NSLog(@"self.images (inside delegate method): %@", self.images); 
    [self renderImages]; 
    [picker dismissModalViewControllerAnimated:TRUE]; 
} 

self.images宣佈爲保留可變數組和合成。我必須做一些錯的,因爲雖然上面的代碼工作當用戶從他們的相機膠捲中選擇圖像如預期,這是的NSLog輸出時,他們採取了新的畫面:

[2690:307] neoImage: <UIImage: 0x24f160> 
[2690:307] self.images (inside delegate method): (null) 

我可能忽略明顯的東西?任何幫助將不勝感激。

注:我也收到當使用相機內存警告:

Received memory warning. Level=1 

回答

0

...是啊,我是個白癡。這是記憶問題。我在viewDidUnload上發佈了self.ideas,我猜這個視圖會在收到內存警告時被釋放,因爲在收到內存警告時,圖像選擇器模態視圖處於活動狀態,而不是其父視圖。記憶警告只在照相機啓動時提出,而不是照相機滾筒選取器,因此根據所選擇的不同行爲而定。