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测试版之间来回反复,每次编辑我的代码都非常烦人。
是否有#if语句和某种环境变量的组合可以让我根据Xcode / Swift的版本调整我的代码? (这可能是Swift 1.2和1.1之间的差异)
答案 0 :(得分:3)
(来自我上面的评论:) 我认为没有办法有条件地编译Swift 1.1或1.2。在你的具体案例中
let mem = malloc(size_t(numBytes))
应该有用。
size_t
在Swift 1.0 / 1.1中定义为UInt
,在Swift 1.2中定义为Int
。通过显式转换,您可以为两者编译。