2016-12-02 17 views
0

私はSwift 3を使用しています。私のコードでは、Wallet AppでSiriインテグレーションを使用しています。私はそれをGoogleで検索したが、私はそれのための解決策を見つけられなかった。ここでタイプ 'CGPoint'の値には、スワイプ3ではメンバー 'makeWithDictionaryRepresentation'がありません。

が私のコードです:ここでは

func createPath(_ points: NSArray) -> UIBezierPath { 
     let path = UIBezierPath() 
     var point = CGPoint() 

     //CGPointMakeWithDictionaryRepresentation((points[0] as! CFDictionary), &point) 
     point.makeWithDictionaryRepresentation((points[0] as! CFDictionary)) // In this line I am getting an error 
     path.move(to: point) 

     var index = 1 
     while index < points.count { 

      //CGPointMakeWithDictionaryRepresentation((points[index] as! CFDictionary), &point) 
      point.makeWithDictionaryRepresentation((points[index] as! CFDictionary)) 
      path.addLine(to: point) 

      index = index + 1 
     } 
     path.close() 

     return path 
    } 

が、私はエラーになっていますされていますタイプの

価値 'をするCGPoint' にはメンバーを持っていない 'makeWithDictionaryRepresentation'

任意の缶誰でも私がそれを解決するのを助けてください。 ありがとうございました。

+1

エラーは明らかに 'CGPoint'は' makeWithDictionaryRepresentation'のようなメンバーを持っていません。どのように設定したり、呼び出すことができますか? – Lion

+0

を参照してください[Apple doc](https://developer.apple.com/reference/coregraphics/cgpoint/1455382-dictionaryrepresentation) – Lion

答えて

1

Swift 3では、init CGPoint(dictionaryRepresentation:)を使用する必要があります。

let point = CGPoint(dictionaryRepresentation:points[0] as! CFDictionary) 

それはとても詳細についてはCGPoint上のアップルのマニュアルを参照してくださいif letguard

if let point = CGPoint(dictionaryRepresentation:points[0] as! CFDictionary) { 
    print(point) 
} 

で使用する打者オプションCGPointインスタンスを返します。

+0

ありがとうございました。それは働いています –

+0

@hrithibウェルカムメイト:)また、 '!'を使用して強制ラップするのではなく 'if let'を使用して' CFDictionary'にラップすると、 'CFDictionary'を変換しないとクラッシュする可能性があります。 –

関連する問題