【发布时间】:2021-10-09 03:49:28
【问题描述】:
我遇到了 Xcode 13b2 (iOS 15 SDK) 更改了 AVCapturePhoto.previewCGImageRepresentation() 的 Swift 返回类型的问题。在 Xcode 12.5.1 (iOS 14 SDK) 中,此方法返回 Unmanged<CGImage>。在 13b2 - 13b4 中,返回CGImage?。
我需要在两个 Xcode 版本下编译我的代码,因为 Xcode 13 有其他问题,不能用于将构建提交到 App Store。我以为我写这个很聪明,但它不会编译,因为它不是条件代码编译检查,而是运行时检查:
extension AVCapturePhoto {
func stupidOSChangePreviewCGImageRepresentation() -> CGImage? {
if #available(iOS 15, *) {
return self.previewCGImageRepresentation()
} else {
return self.previewCGImageRepresentation()?.takeUnretainedValue()
}
}
}
另一种可能是创建用户定义的 Xcode 设置,但我认为这不能根据 Xcode 或 SDK 版本有条件地完成。
可能会有一些不安全的指针表演可以做......
还有其他想法吗?
【问题讨论】: