2016-12-02 66 views
0

我正在使用Swift 3.在我的代碼中,我使用的是Siri集成的Wallet App.I在該App中出現錯誤。我在谷歌搜索它,但我沒有找到它的解決方案。'CGPoint'類型的值在swift中沒有成員'makeWithDictionaryRepresentation'3

這裏是我的代碼:

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文檔](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實例,以便用麪糊更多細節上CGPointif letguard

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

檢查蘋果的文檔使用。

+0

非常感謝呃。其工作 –

+0

@hrithib歡迎隊友:)如果您可選un使用'if let'替換CFDictionary'而不是使用'!'強制包裝,如果它沒有將其轉換爲'CFDictionary'',可能會導致崩潰。 –

相關問題