首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Xcode13和Xcode12中使用previewCGImageRepresentation?

在Xcode13和Xcode12中使用previewCGImageRepresentation?
EN

Stack Overflow用户
提问于 2021-08-04 01:48:45
回答 1查看 219关注 0票数 3

我遇到了一个问题,Xcode13b2( Swift 15SDK)更改了AVCapturePhoto.previewCGImageRepresentation()的iOS返回类型。在Xcode12.5.1 (iOS 14SDK)中,此方法返回Unmanged<CGImage>。在13b2 - 13b4中,它返回CGImage?

我需要我的代码在两个Xcode版本下编译,因为Xcode13还有其他问题,不能用来向App Store提交构建。我认为我写这篇文章很聪明,但它不会编译,因为它不是条件代码编译检查,而是运行时检查:

代码语言:javascript
复制
extension AVCapturePhoto {
    func stupidOSChangePreviewCGImageRepresentation() -> CGImage? {
        if #available(iOS 15, *) {
            return self.previewCGImageRepresentation()
        } else {
            return self.previewCGImageRepresentation()?.takeUnretainedValue()
        }
    }
}

另一种可能是创建用户定义的Xcode设置,但我认为这不能基于Xcode或SDK版本有条件地完成。

可能有一些不安全的指针装腔作势,人们可以做…

还有其他想法吗?

EN

回答 1

Stack Overflow用户

发布于 2021-08-17 20:26:07

你可以检查一下swift编译器的版本。在撰写本文时,维基百科上提供了一个详尽的列表。

https://en.wikipedia.org/wiki/Xcode#Toolchain_versions

代码语言:javascript
复制
extension AVCapturePhoto {
    func stupidOSChangePreviewCGImageRepresentation() -> CGImage? {
    #if compiler(>=5.5)
        return self.previewCGImageRepresentation()
    #else
        return self.previewCGImageRepresentation()?.takeUnretainedValue()
    #endif
    }
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68644502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档