0
我打電話跟這個有UIBeizerPath
的getLineDash
:'地圖' 產生[T],不是預期的情境結果類型 'UnsafeMutablePointer <CGFloat>'
path.getLineDash(pattern.map{CGFloat($0)}, ...)
凡pattern
是[Float]
(我必須使用[Float]
,不[CGFloat]
)以下Fast method to cast [Float] to [CGFloat]?丟給[CGFloat]
,但它給我
Cannot convert value of type '[CGFloat]' to expected argument type 'UnsafeMutablePointer<CGFloat>?'
古怪,執行
path.setLineDash(pattern.map{CGFloat($0)}, ...
不引發編譯錯誤。
正在關注this問題,我加了as UnsafeMutablePointer<CGFloat>
,但它仍然給我錯誤。
參見:http://stackoverflow.com/questions/39515173/how-to-use-unsafemutablepointer-in-swift-3 – shallowThought
的方法'setLineDash'需要'UnsafePointer',所以你可以使用'map'。 (但是,在每次調用'setLineDash'時,它都不是一種有效的方式來調用'map')。**必須**使用'[CGFloat]'(或手動分配的'CGFloat's)來調用'getLineDash '。 –
OOPer