gpt4 book ai didi

swift - 你如何在 Swift 中分配/释放不安全的指针?

转载 作者:IT王子 更新时间:2023-10-29 05:28:24 24 4
gpt4 key购买 nike

对于 Beta 4,我的这段代码运行良好:

var red, green, blue, alpha: UnsafePointer<CGFloat>
red = UnsafePointer<CGFloat>.alloc(1)
green = UnsafePointer<CGFloat>.alloc(1)
blue = UnsafePointer<CGFloat>.alloc(1)
alpha = UnsafePointer<CGFloat>.alloc(1)
myColor.getRed(red, green: green, blue: blue, alpha: alpha)

CGContextSetRGBStrokeColor(context, red.memory, green.memory, blue.memory, 1)

red.dealloc(1)
green.dealloc(1)
blue.dealloc(1)
alpha.dealloc(1)

现在使用 Beta5,我收到错误“‘UnsafePointer.Type’没有名为‘alloc’的成员”。

我要做的就是根据 UIColor 设置 CGContext 的笔触颜色。我现在该怎么办? “withUnsafePointers”函数有点像个笑话——它会产生奇怪的错误,而且它最多只需要三个不安全的指针,而在这种情况下我试图使用四个。

最佳答案

这行得通,Swift 足够聪明,知道如何使用 & 运算符:

let color = UIColor.purpleColor()
var r:CGFloat, g:CGFloat, b:CGFloat, a:CGFloat = 0
color.getRed(&r, green: &g, blue: &b, alpha: &a)
CGContextSetRGBStrokeColor(c, r, g, b, a)

如果你真的想自己做分配,使用你最喜欢的风格并像这样构造指针:

let p = UnsafeMutablePointer<CGFloat>(calloc(1, UInt(sizeof(CGFloat))))
// later don't forget to free(p)

关于swift - 你如何在 Swift 中分配/释放不安全的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25130581/

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