gpt4 book ai didi

swift - 有没有办法有条件地为 Swift 1.1 和 1.2 编译?

转载 作者:搜寻专家 更新时间:2023-11-01 06:47:05 26 4
gpt4 key购买 nike

malloc() 的定义在 Swift 1.2 (Xcode 6.3) 中明显改变

在 Swift 1.2 中它被定义为

func malloc(_: Int) -> UnsafeMutablePointer<Void>

在 Swift 1.1 (Xcode 6.2) 中它被定义为:

在 Xcode 6.2 中

func malloc(_: UInt) -> UnsafeMutablePointer<Void>

这意味着必须根据您使用的 Xcode 版本更改使用此函数的代码。我一直在 Xcode 6.2 和当前的 Xcode 6.3 beta 之间来回切换,每次都必须编辑我的代码,这很烦人。

是否有 #if 语句和某种环境变量的组合可以让我的代码根据 Xcode/Swift 的版本进行调整? (这可能是 Swift 1.2 和 1.1 的区别)

最佳答案

(来 self 上面的评论:)我认为没有办法为 Swift 1.1 或 1.2 进行条件编译。在您的具体案例中

let mem = malloc(size_t(numBytes))

应该可以。

size_t 在 Swift 1.0/1.1 中定义为 UInt,在 Swift 1.2 中定义为 Int。通过显式转换,您可以为两者编译。

关于swift - 有没有办法有条件地为 Swift 1.1 和 1.2 编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29437518/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com