2016-09-16 6 views
5

で働いていない:CGPathには、今私は、コンパイラのエラーを取得し、私はしかし、SWIFT 2.で働く私のSpriteKitベースオブジェクトのカスタムパスを作成しているSWIFT 3.のためのコードを更新していますスウィフト3

Nil is not compatible with expected argument type 'Unsafe Pointer CGAffineTransform'

let offsetX = player.size.width * player.anchorPoint.x 
let offsetY = player.size.height * player.anchorPoint.y 

let path = CGMutablePath() 

CGPathMoveToPoint(path, nil, 10 - offsetX, 16 - offsetY) 
CGPathAddLineToPoint(path, nil, 10 - offsetX, 0 - offsetY) 
CGPathAddLineToPoint(path, nil, 24 - offsetX, 0 - offsetY) 
CGPathAddLineToPoint(path, nil, 24 - offsetX, 16 - offsetY) 
CGPathAddLineToPoint(path, nil, 24 - offsetX, 16 - offsetY) 
CGPathAddLineToPoint(path, nil, 28 - offsetX, 40 - offsetY) 
CGPathAddLineToPoint(path, nil, 18 - offsetX, 46 - offsetY) 
CGPathAddLineToPoint(path, nil, 6 - offsetX, 36 - offsetY) 
CGPathAddLineToPoint(path, nil, 6 - offsetX, 18 - offsetY) 



path.closeSubpath() 

エラーは、パスに追加するときに2番目の引数にnilを渡すことです。私はそう安全でないポインタを渡そうとしました:

var tr = CGAffineTransform.identity 
CGPathMoveToPoint(path, &tr, 10 - offsetX, 16 - offsetY) 
.... 

しかし、別の奇妙なエラーが発生しました。

CGPathMoveToPoint is unavailable. Use move(to: transform:)

ただし、引数名にはmove関数はありませんでした。しかし、動きがあった(toParent:)。

答えて

15

Swift 3ではほとんどの構文が変更されていますが、CGPathMoveToPointなどのAPIメソッドは削除されていません。以下のように名前が変更されました。

let path = CGMutablePath() 
path.move(to: CGPoint(x: 10.0, y: 10.0)) 
path.addLine(to: CGPoint(x: 10.0, y: 10.0)) 
+0

ありがとうございました!メンバー関数の変数をチェックするとは思わなかった。 – patrickd

関連する問題

 関連する問題