Swift 2.0 Call Can Throw 但没有标上try
Swift 2.0 Call Can Throw but is not marked with try
我正在尝试在更新到 XCode 7 后更新我的应用程序中的代码,看起来我将不得不再次经历一个严肃的学习曲线才能赶上进度。我在下面的代码中做错了什么?
if let 还在用吗?
我对 C# 之外的 try/catch 非常不熟悉。我不知道如何在 swift 的上下文中使用它,如果能找到一个不假设我曾经知道 Objective C 或曾经遇到过的易于理解的指南,那就太好了这个之前。
改用这个:
do {
let json = try NSJSONSerialization.JSONObjectWithData(...)
return json
} catch let error as NSError {
print("JSON Error: \(error.localizedDescription)")
}
您正在调用一个抛出 Swift 错误的方法,因此需要用 try 标记它。
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)
我正在尝试在更新到 XCode 7 后更新我的应用程序中的代码,看起来我将不得不再次经历一个严肃的学习曲线才能赶上进度。我在下面的代码中做错了什么?
if let 还在用吗?
我对 C# 之外的 try/catch 非常不熟悉。我不知道如何在 swift 的上下文中使用它,如果能找到一个不假设我曾经知道 Objective C 或曾经遇到过的易于理解的指南,那就太好了这个之前。
改用这个:
do {
let json = try NSJSONSerialization.JSONObjectWithData(...)
return json
} catch let error as NSError {
print("JSON Error: \(error.localizedDescription)")
}
您正在调用一个抛出 Swift 错误的方法,因此需要用 try 标记它。
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)