UIImageWriteToSavedPhotosAlbum只是工作的时候。有时工作,有时没有,完全相同的功能。

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

我使用一个UIImagePicker控制器获得的图像,然后电话的功能。

有时候,它节省了它的摄像头卷,其他时候,它仅仅不.

任何人有任何想法?

在此先感谢。

编辑:

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

wait_fences: failed to receive reply: 10004003
有帮助吗?

解决方案

我会开始通过增加完成工作目标的方法的保存电话,看看它是否产生任何错误。看看 UIImageWriteToSavedPhotosAlbum 文件的详细信息。

编辑:

一个时代的返回...wait_fences:未收到答复:10004003

这意味着操作的超时。有很多原因的:

  1. 低存储器:把一个登录在 didReceiveMemoryWarning 看到如果这就是原因。
  2. 腐败的文件,该系统不能保存。如果图像生成的各个时间可能不出来的权利。
  3. 不适当地报告全盘的错误。

我认为(1)最有可能的,并解释了间歇性的。当你有足够的记忆的方法工作的而当你没失败。

此外,当您汇编,解决任何警告。这些仅仅是错误那会不会显示出来,直到运行时间。你问题可能没有列出

其他提示

希望这个答案是不是太晚了是有帮助的。我遇到了一模一样的问题。事实证明这个问题是双重的。首先,确实需要的图像被保留,然后发送到UIImageWriteToSavedPhotosAlbum。其次,在预先的iPhone4设备此功能可以采取loooooong时间做它的事。我发现此修复程序是实现一个回调函数。看到这对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];
    }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top