ios-Swift中如何保存图片到本地

我们知道在OC中保存图片到本地需要写这么一个方法,然后这里面的第一个参数传入的就是图片,第二个参数传入的是监听的对象,第三个参数传入的是监听的方法,第四个参数传的是上下文。

 //写入到相册
        UIImageWriteToSavedPhotosAlbum(currentImage, self, #selector(image(image:didFinishSavingWithError:contextInfo:)), nil)
我们点进这个函数进去看的时候会发现这个函数上面会有这么一行东西,这一行东西其实就是我们的监听方法的名字,那么我们如何在Swift中根据这个OC形式的函数去写相应的Swift的函数呢?

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

我们应该满足以下的一些条件,首先函数名要一样,然后OC中的(UIImage *)对应的就是我们冒号: 后面的类型,还有就是(UIImage *)后面的image对应的就是我们的参数名,然后OC中的didFinishSavingWithError:(NSError *)error,这个didFinishSavingWithError这个我们可以理解为是为了能让人能看懂,所以我们在Swift中就要写对应的外部参数,然后我们后面的contextInfo:(void *)contextInfo这个写成contextInfo:AnyObject? 这样是因为在(void *)前面的和后面的名字都是相同的所以我们写一个就可以了,还有就是(void *)在OC中是id类型,相当于Swift中的AnyObject。我们最好按照这个规范来,我测试了下我们把image的名字改成image1也是可以的,也就是说可能对函数名字没有要求,然后将contextInfo的类型改成Any?类型也是可以了说明对我们写的函数的参数的类型可能没有限制,但是我们一旦把contextInfo这个参数删掉就崩溃了,所以不过我们最好还是根据OC中的那个函数来写。这样不会出错。

 @objc private func image(image:UIImage,didFinishSavingWithError error:NSError?,contextInfo:AnyObject?)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值