Iphone UIImagePicker在选择后崩溃

Iphone UIImagePicker在选择后崩溃,iphone,objective-c,uiimagepickercontroller,Iphone,Objective C,Uiimagepickercontroller,我正在使用,以便可以选择多张照片并导入它们。当我选择几张照片时效果很好,但如果我选择25张左右,我会崩溃。以下是我点击“完成选择照片”后运行的代码: -(void)selectedAssets:(NSArray*)_assets { NSMutableArray *returnArray = [[NSMutableArray alloc] init]; int count=0; for(ALAsset *asset in _assets) { NSMuta

我正在使用,以便可以选择多张照片并导入它们。当我选择几张照片时效果很好,但如果我选择25张左右,我会崩溃。以下是我点击“完成选择照片”后运行的代码:

-(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)


我选择的图像是用后置摄像头拍摄的iPhone4图像。我也尝试过在导入时调整图像的大小,但即使如此,应用程序仍然崩溃。你知道问题出在哪里吗?

如果你不介意的话,我会把它作为一个答案

这个问题几乎没有解决办法。首先,您可能希望限制用户选择多于5张照片。第二,在将图像放入数组或其他东西之前,您可能需要调整图像的大小并使其非常小。或者,如果您需要它们全部保持原始大小,您可以在选择后将它们复制到~/tmp目录,并将指向它们的链接存储在NSArray中,这样您就可以从磁盘动态加载它们,而不是将它们全部保存在内存中


抱歉,如果它没有帮助,因为我真的不知道你的最终目标,在使用这么多的图像在同一时间

如果你不介意的话,我会把它作为一个答案

这个问题几乎没有解决办法。首先,您可能希望限制用户选择多于5张照片。第二,在将图像放入数组或其他东西之前,您可能需要调整图像的大小并使其非常小。或者,如果您需要它们全部保持原始大小,您可以在选择后将它们复制到~/tmp目录,并将指向它们的链接存储在NSArray中,这样您就可以从磁盘动态加载它们,而不是将它们全部保存在内存中


抱歉,如果它没有帮助,因为我真的不知道你的最终目标,在使用这么多的图像在同一时间

您可能使用了太多的内存。您是否使用活动监视工具分析了这部分代码?我现在在Instruments中使用了leaks模板,总分配从未超过3.76MB。或者我应该使用一个不同的模板?很难相信,在选择80个图像并将它们加载到RAM中时,它的使用量大约为4mb。尝试使用活动监视器工具,它显示实际内存使用统计信息。好的,我使用了活动监视器。如果我正确使用它,那么在导入时,我的应用程序的RealMem将增加100 MB以上。我猜这不好。我能怎么办?你可能用太多的内存了。您是否使用活动监视工具分析了这部分代码?我现在在Instruments中使用了leaks模板,总分配从未超过3.76MB。或者我应该使用一个不同的模板?很难相信,在选择80个图像并将它们加载到RAM中时,它的使用量大约为4mb。尝试使用活动监视器工具,它显示实际内存使用统计信息。好的,我使用了活动监视器。如果我正确使用它,那么在导入时,我的应用程序的RealMem将增加100 MB以上。我猜这不好。我能做些什么?