0
我使用ELCImagePickerController,所以我可以選擇多張照片並導入它們。當我選擇幾張照片時它工作正常,但如果我選擇了大約25張,我會發生崩潰。下面是運行我打做選擇照片後的代碼:UIImagePicker選擇後崩潰
-(void)selectedAssets:(NSArray*)_assets {
NSMutableArray *returnArray = [[NSMutableArray alloc] init];
int count=0;
for(ALAsset *asset in _assets) {
NSMutableDictionary *workingDictionary = [[NSMutableDictionary alloc] init];
[workingDictionary setObject:[asset valueForProperty:ALAssetPropertyType] forKey:@"UIImagePickerControllerMediaType"];
UIImage *image=[UIImage imageWithCGImage:[[asset defaultRepresentation] fullScreenImage]];
[workingDictionary setObject:image forKey:@"UIImagePickerControllerOriginalImage"];
[workingDictionary setObject:[[asset valueForProperty:ALAssetPropertyURLs] valueForKey:[[[asset valueForProperty:ALAssetPropertyURLs] allKeys] objectAtIndex:0]] forKey:@"UIImagePickerControllerReferenceURL"];
NSLog(@"%i", count);
count++;
[returnArray addObject:workingDictionary];
}
[self popToRootViewControllerAnimated:NO];
[[self parentViewController] dismissModalViewControllerAnimated:YES];
if([delegate respondsToSelector:@selector(elcImagePickerController:didFinishPickingMediaWithInfo:)]) {
[delegate performSelector:@selector(elcImagePickerController:didFinishPickingMediaWithInfo:) withObject:self withObject:[NSArray arrayWithArray:returnArray]];
}
}
我選擇了80張照片,並聲明的NSLog顯示多達45,但隨後只是沒有消息死機,只是(gdb)
。
我選擇的圖像是用後置攝像頭拍攝的iPhone 4圖像。我試圖在導入時調整圖像大小,但即使如此,應用程序仍然崩潰。任何想法可能是什麼問題?
你可能會使用太多的RAM。您是否使用Activity Monitor工具分析了這部分代碼? – Eugene 2011-12-22 21:44:00
我現在在儀器中使用了泄漏模板,總分配從未超過3.76 MB。或者我應該使用不同的模板? – Snowman 2011-12-22 21:51:46
幾乎不可置信的是,在選擇80張圖片並將它們加載到RAM中後,它的使用情況就會像〜4mb。嘗試使用Activity Monitor儀器,它會顯示真實的內存使用情況統計信息。 – Eugene 2011-12-22 21:53:37