UIImageWriteToSavedPhotosAlbum没有得到完成回调

时间:2018-02-20 14:31:14

标签: swift

我正在运行代码UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)以将照片(来自网址的图片)保存到相册库。这非常有效。但是,这是一个盲目的功能,我想调用一个回调来知道它是否成功保存。

这是我正在尝试的。

            UIImageWriteToSavedPhotosAlbum(image, self, #selector(imageSaved(_:didFinishSavingWithError:contextInfo:)), nil)

            func imageSaved(image: UIImage!, didFinishSavingWithError error: NSError?, contextInfo: AnyObject?) {
                if (error != nil) {
                    print("error")
                    print(error)
                    //Do Something with error associated with image
                } else {
                    // Everything is alright.
                }
            }

我正在尝试使用此代码并继续Use of unresolved identifier imageSaved(_:didFinishSavingWithError:contextInfo:)

我的问题是我不了解完成选择器,以及Apple文档中发生了什么

- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo;

那是什么意思?我该如何使用它?

3 个答案:

答案 0 :(得分:3)

试试这个:

SSOE

希望它有所帮助!!

答案 1 :(得分:0)

Apple文档中所述:UIImageWriteToSavedPhotosAlbum(::::)

  

completionSelector   要调用的完成目标对象的方法选择器。此可选方法应符合以下签名

- (void)image:(UIImage *)image
    didFinishSavingWithError:(NSError *)error
                 contextInfo:(void *)contextInfo;

因此您在Swift中的回调函数必须类似于

@objc func imageSaved(image:UIImage,didFinishSavingWithError error:Error,contextInfo:UnsafeMutableRawPointer?){
        self.showAlert(title:"Image saved to Photos!", message: "");
    }

答案 2 :(得分:-1)

我有一个类似的问题,我通过使类继承自NSObject来解决。