我試圖在更新XCode 7之後更新我的應用中的代碼,它看起來像我將不得不再次通過嚴重的學習曲線趕上。我在下面的代碼中做了什麼錯誤?Swift 2.0調用可以拋出但未標記爲
是如果還在使用?
,我根本沒有C#的外熟悉的try/catch。我不知道如何在swift語境中使用它,如果找到一個容易理解的指南,並不認爲我曾經知道Objective C或以前曾經遇到過這個問題,那將是非常好的。
我試圖在更新XCode 7之後更新我的應用中的代碼,它看起來像我將不得不再次通過嚴重的學習曲線趕上。我在下面的代碼中做了什麼錯誤?Swift 2.0調用可以拋出但未標記爲
是如果還在使用?
,我根本沒有C#的外熟悉的try/catch。我不知道如何在swift語境中使用它,如果找到一個容易理解的指南,並不認爲我曾經知道Objective C或以前曾經遇到過這個問題,那將是非常好的。
使用這個代替:
do {
let json = try NSJSONSerialization.JSONObjectWithData(...)
return json
} catch let error as NSError {
print("JSON Error: \(error.localizedDescription)")
}
您撥打的拋出一個錯誤雨燕,因此,它需要被打上嘗試的方法。
do
{
let json = try NSJSONSerializer.JSONObjectWithData(...)
return json
}
catch
{
// By default the catch clause defines the variable error as whatever ws thrown
print("Error is \(error)")
return nil
}
幾乎是你想要的。
在我的理解情況
let result: AnyObject? = try! NSJSONSerialization.JSONObjectWithData(jsonData!, options: NSJSONReadingOptions.MutableContainers)
是整個「如果讓」塊SWIFT 2.0哪裏去了?我們不再使用它了嗎? –
'如果let'仍然存在,但您正在調用可拋出函數。如果你確定函數調用會成功,你可以使用'if let json = try! NSJSONSerialization ...' –
好酷謝謝! –