私はSwiftでCGPathを作成しようとしています。私はCGPathCreateWithRect(rect, transformPointer)
を使用しています。UnsafePointer <CGAffineTransform> from CGAffineTransform
CGAffineTransform
からUnsafePointer<CGAffineTransform>
を取得するにはどうすればよいですか?私はこれを試してみた:
let transform : CGAffineTransform = CGAffineTransformIdentity
let transformPointer : UnsafePointer<CGAffineTransform> = UnsafePointer(transform)
また、私はこれを試してみた:
let transform : CGAffineTransform = CGAffineTransformIdentity
let transformPointer : UnsafePointer<CGAffineTransform> = &transform
が、スウィフトは'&' with non-inout argument of type...
文句を言います。またCGPathCreateWithRect
に直接&transform
を渡そうとしましたが、同じエラーで停止します。
transform
を直接渡すと、「CGAffineTransform型の値を予想される引数型「UnsafePointer」に変換できません」というメッセージが表示されます。
何が起こっているのですか、Swift 2.1でこのことをどうすればできますか?
あなたは*可変ポインタを必要とせず、ポインタキャストを必要としないので、 'withUnsafePointer(&transform){CGPathCreateWithRect(CGRect()、$ 0)}'に短縮することができます。 - 私は、CGPathCreateWithRect()*がデータをコピーしてポインタを保持しないと確信しています。さもなければ、C言語では(ローカル)配列のアドレスをその関数に渡すことはできません。 –
それは本当です、私は100%CGPathCreateWithRectに精通していません、私は様々な状況で安全でないポインタをどのように処理するのかということを思い出しました。 – Knight0fDragon
これはなぜ答えですか?私はマーティンRの方法を最初に使用することを好むだろう、彼は答えの完全な信用を得る必要があります、私はちょうど人々がその問題を遭遇する場合に、安全でない変更可能なポインタのための別の方法を指摘していた – Knight0fDragon