gpt4 book ai didi

swift - 来自 CGAffineTransform 的 UnsafePointer

转载 作者:搜寻专家 更新时间:2023-10-30 22:03:24 25 4
gpt4 key购买 nike

我正在尝试在 Swift 中创建 CGPath。我正在使用 CGPathCreateWithRect(rect, transformPointer) .

我怎样才能得到 UnsafePointer<CGAffineTransform>来自CGAffineTransform ?我试过这个:

    let transform : CGAffineTransform = CGAffineTransformIdentity
let transformPointer : UnsafePointer<CGAffineTransform> = UnsafePointer(transform)

我也试过这个:

    let transform : CGAffineTransform = CGAffineTransformIdentity
let transformPointer : UnsafePointer<CGAffineTransform> = &transform

但是 Swift 提示 '&' with non-inout argument of type... .我也试过传递 &transform直接进入CGPathCreateWithRect但由于同样的错误而停止。

当我传入 transform 时直接地,Swift“无法将‘CGAffineTransform’类型的值转换为预期的参数类型‘UnsafePointer’”。

这是怎么回事,如何让它与 Swift 2.1 一起工作?

最佳答案

I've also tried passing &transform directly into CGPathCreateWithRect ...

你快到了。 transform 需要是一个变量为了将它作为 inout 参数传递给 &:

var transform = CGAffineTransformIdentity
let path = CGPathCreateWithRect(CGRect(...), &transform)

有关详细信息,请参阅 "Interacting with C APIs"在“将 Swift 与 Cocoa 和 Objective-C 结合使用”文档中。


Swift 3 中会是

var transform = CGAffineTransform.identity
let path = CGPath(rect: rect, transform: &transform)

或者,对于身份转换,只是

let path = CGPath(rect: rect, transform: nil)

关于swift - 来自 CGAffineTransform 的 UnsafePointer<CGAffineTransform>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34342864/

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