0
パスを描画しようとしています:CGMutablePath
パスを追加する際に問題が発生しています。 nilは'UnsafePointer'CGAffineTransform'
Nilは期待される引数型と互換性がありませんCGAffineTransform
override func draw(_ rect: CGRect) {
let context = UIGraphicsGetCurrentContext()
let path = CGMutablePath()
CGPathAddArc(path, nil, centerX, centerY, radius, -CGFloat(M_PI/2), CGFloat(GLKMathDegreesToRadians(currentAngle)), false)
context!.addPath(path)
context!.setStrokeColor(UIColor.blue.cgColor)
context!.setLineWidth(3)
context!.strokePath()
}
しようとしましたいくつかのことは、働いていたこれらの0, options: nil, options: [ ]
なしでnilを置き換える予想引数の型と互換性がありません。
@vadian答えの助けを借りて。 ソリューション:
override func draw(_ rect: CGRect) {
let context = UIGraphicsGetCurrentContext()!
let path = CGMutablePath()
path.addArc(center: CGPoint(x:centerX, y:centerY), radius: radius, startAngle: -(CGFloat.pi/2), endAngle: CGFloat(GLKMathDegreesToRadians(currentAngle)), clockwise: false)
context.addPath(path)
context.setStrokeColor(UIColor.blue.cgColor)
context.setLineWidth(3)
context.strokePath()
}
OPのコードで '!'をすべて使わないようにする方法の少しの例を追加するといいでしょう。 – rmaddy
@rmaddyこの特定のケースでは、強制アンラップされたコンテキストは完全に問題ありません。ドキュメンテーションによると 'UIView'は' drawRect'を呼び出す前に有効なコンテキストを提供しています(drawRect:メソッドを呼び出す前に、ビューオブジェクトは有効なコンテキストをスタックにプッシュして現在にします*) – vadian
'let context = UIGraphicsGetCurrentContext()! 'を実行し、すべての' context! '使用の必要性を避けます。 – rmaddy