2015-10-05 31 views
1

我試圖在更新XCode 7之後更新我的應用中的代碼,它看起來像我將不得不再次通過嚴重的學習曲線趕上。我在下面的代碼中做了什麼錯誤?Swift 2.0調用可以拋出但未標記爲

是如果還在使用?

enter image description here

,我根本沒有C#的外熟悉的try/catch。我不知道如何在swift語境中使用它,如果找到一個容易理解的指南,並不認爲我曾經知道Objective C或以前曾經遇到過這個問題,那將是非常好的。

回答

6

使用這個代替:

do { 
    let json = try NSJSONSerialization.JSONObjectWithData(...) 
    return json 
} catch let error as NSError { 
    print("JSON Error: \(error.localizedDescription)") 
} 
+0

是整個「如果讓」塊SWIFT 2.0哪裏去了?我們不再使用它了嗎? –

+0

'如果let'仍然存在,但您正在調用可拋出函數。如果你確定函數調用會成功,你可以使用'if let json = try! NSJSONSerialization ...' –

+0

好酷謝謝! –

1

您撥打的拋出一個錯誤雨燕,因此,它需要被打上嘗試的方法。

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 
} 

幾乎是你想要的。

-1

在我的理解情況

let result: AnyObject? = try! NSJSONSerialization.JSONObjectWithData(jsonData!, options: NSJSONReadingOptions.MutableContainers) 
相關問題