选择后UIImagePicker崩溃

时间:2011-12-22 21:39:40

标签: iphone objective-c uiimagepickercontroller

我正在使用ELCImagePickerController,因此我可以选择多张照片并导入它们。当我选择几张照片时,它工作正常,但如果我选择超过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)

我选择的图像是使用后置摄像头拍摄的iPhone 4图像。我在导入时也尝试调整图像大小,但即使这样,应用程序仍会崩溃。什么可能是问题的想法?

1 个答案:

答案 0 :(得分:2)

如果你不介意,我会把它作为答案。

这个问题的解决方案很少。首先,您可能希望限制用户选择超过5张照片的内容。其次,您可能希望调整图像大小并使它们非常小,然后再将它们放入数组或其他内容中。或者如果你需要全部都是原始大小,你可以在选择时将它们复制到〜/ tmp目录,而是在NSArray中存储它们的链接,这样你就可以从磁盘动态加载它们而不是将它们全部保存在内存中

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