我有代碼我一直在使用SwiftyJSON,我試圖更新到Swift 3使用XCode 8.0 Beta 3.我遇到了一個問題,其中編譯器不喜歡參數的錯誤:& err'像以前一樣。我一直在尋找如何正確傳遞一個NSErrorPointer,但是我發現的所有東西都說要重寫,忽略錯誤並拋出一個錯誤。由於這不是我的代碼,我寧願保留原樣。那麼使用NSErrorPointer的正確新方法是什麼?Swift 3更改爲NSErrorPointer?
var err : NSError?
// code to get jsonData from file
let json = JSON(data: jsonData, options: JSONSerialization.ReadingOptions.allowFragments, error: &err)
if err != nil {
// do something with the error
} else {
return json
}
上述結果在編譯器錯誤代碼:「&」只能立即出現在呼叫參數列表。我試圖創建一個NSErrorPointer,所以我可以使用它,但我找不到任何關於如何初始化一個(類型別名聲明是不夠的)。我已經去過Using Swift with Cocoa and Obj-C,它沒有包含單詞NSErrorPointer,而是翻過了拋出錯誤的新方法。我也看過幾十個帖子,全部使用& err,所以顯然這是Swift 3的新功能。
有沒有人有解決這個問題?使用NSErrorPointer的答案是什麼?
謝謝, 麥克
非常感謝答案中的細節。看起來像SwiftyJSON重複了SE-0055中所做的工作,這些工作是通過更改類型別名完成的。 – Mikey