UIImageWriteToSavedPhotosAlbum工作......有时候

Edu*_*Alm 3 cocoa-touch uiimagepickercontroller iphone-sdk-3.1

UIImageWriteToSavedPhotosAlbum有时只能工作.有时它有效,有时它不起作用,完全相同的功能.

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo {
NSLog(@"Saving image to camera roll...");
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
NSLog(@"Done!"); }
Run Code Online (Sandbox Code Playgroud)

我正在使用UIImagePicker控制器来获取然后调用该函数的图像.

有时它会将其保存到相机胶卷上,有时则根本不会.

任何人有任何想法?

提前致谢.

编辑:

UIImageWriteToSavedPhotosAlbum的完成方法有时返回错误:

wait_fences: failed to receive reply: 10004003
Run Code Online (Sandbox Code Playgroud)

Dan*_*eek 17

希望这个答案还为时不晚,无济于事.我遇到了完全相同的问题.事实证明这个问题是双重的.首先,在将图像发送到UIImageWriteToSavedPhotosAlbum之前,需要保留图像.其次,在iPhone4之前的设备上,这个功能可以花费很多时间来完成它的工作.我发现的修复是实现回调函数.有关此信息,请参阅UIImageWriteToSavedPhotosAlbum的文档.该函数必须采用正确的格式,不能只使用任何旧函数.在此功能中,请确保释放您保留的图像,否则将泄漏内存.您还可以使用它来跟踪保存图像的时间.这是我的基本代码如下:

    -(void)processImage:(UIImage *)image {
        [image retain];
        UIImageWriteToSavedPhotosAlbum(reconstructedImage, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL);
}


    - (void)image:(UIImage *) image didFinishSavingWithError: (NSError *) error contextInfo: (void *) contextInfo {
        NSLog(@"SAVE IMAGE COMPLETE");
        if(error != nil) {
            NSLog(@"ERROR SAVING:%@",[error localizedDescription]);
        }
        [image autorelease];
    }
Run Code Online (Sandbox Code Playgroud)