以下oc代码用swift3应该怎么写?

发布于 2022-09-06 10:36:39 字数 1191 浏览 10 评论 0

从oc代码迁移到swift3,感觉进了大坑。。。。

用的是TZImagePickerController这个插件,看了下网上的用例几乎都是oc的用例。它的文档里有这么一个属性用来初始化

@property (nonatomic, copy) void (^didFinishPickingPhotosHandle)(NSArray<UIImage *> *photos,NSArray *assets,BOOL isSelectOriginalPhoto);

然后我用oc调用的示例是这样的

// 你可以通过block或者代理,来得到用户选择的照片.
    [imagePickerVc setDidFinishPickingPhotosHandle:^(NSArray<UIImage *> *photos, NSArray *assets, BOOL isSelectOriginalPhoto) {
        //blablabla..
    }];

现在要用swift去做这件事,我的写法->

imagePick?.didFinishPickingPhotosHandle({
        (photos:[UIImage]!,assets:[AnyObject]!,isSelectOriginalPhoto:Bool)->Void in
        
    })

结果它一直在报这个错 ->

Cannot convert value of type '([UIImage]!, [AnyObject]!, Bool) -> Void' to expected argument type '([UIImage]?, [Any]?, Bool)'

我到底错在哪?能否求个解,已经困扰了一天半。。。

上图

图片描述

图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

享受孤独 2022-09-13 10:36:39

用block

imagePick.didFinishPickingPhotosHandle = {(images: [UIImage]?, assets:[Any]?, isSelectOriginalPhoto: Bool) in
    print(images)
}

用代理

if let imagePick = TZImagePickerController.init(maxImagesCount: 5, delegate: nil) {
    imagePick.pickerDelegate = self
}
extension ViewController: TZImagePickerControllerDelegate {
    
    func imagePickerController(_ picker: TZImagePickerController!, didFinishPickingPhotos photos: [UIImage]!, sourceAssets assets: [Any]!, isSelectOriginalPhoto: Bool) {
        print(photos)
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文