swiftyjson - 调用可以抛出,但是被标记为'try',错误没有被处理
swiftyjson - Call can throw, but it is marked with 'try' and the error is not handled
我正在尝试使用 swiftyjson,但出现错误:
Call can throw, but it is marked with 'try' and the error is not
handled.
我已经验证我的来源 JSON 是好的。我一直在搜索,但找不到解决此问题的方法
import Foundation
class lenderDetails
{
func loadLender()
{
let lenders = ""
let url = URL(string: lenders)!
let session = URLSession.shared.dataTask(with: url)
{
(data, response, error) in
guard let data = data else
{
print ("data was nil?")
return
}
let json = JSON(data: data)
print(json)
}
session.resume()
}
}
感谢大家的帮助!
可能您需要实施 do{} catch{}
块。在 do
块中,您必须使用 try.
调用 throwable 函数
您应该将其包装到 do-catch
块中。你的情况:
do {
let session = URLSession.shared.dataTask(with: url) {
(data, response, error) in
guard let data = data else {
print ("data was nil?")
return
}
let json = JSON(data: data)
print(json)
}
} catch let error as NSError {
// error
}
SwiftyJSON 初始化器throws
,声明为
public init(data: Data, options opt: JSONSerialization.ReadingOptions = []) throws
您有三个选择:
使用do - catch
块并处理错误(推荐的)。
do {
let json = try JSON(data: data)
print(json)
} catch {
print(error)
// or display a dialog
}
忽略错误并可选地绑定结果(如果错误无关紧要则很有用)。
if let json = try? JSON(data: data) {
print(json)
}
强制解包结果
let json = try! JSON(data: data)
print(json)
只有在保证尝试永远不会失败的情况下才使用此选项(在这种情况下不会!)。 Try!
可以在 FileManager
中使用,如果目录是框架创建的默认目录之一。
我正在尝试使用 swiftyjson,但出现错误:
Call can throw, but it is marked with 'try' and the error is not handled.
我已经验证我的来源 JSON 是好的。我一直在搜索,但找不到解决此问题的方法
import Foundation
class lenderDetails
{
func loadLender()
{
let lenders = ""
let url = URL(string: lenders)!
let session = URLSession.shared.dataTask(with: url)
{
(data, response, error) in
guard let data = data else
{
print ("data was nil?")
return
}
let json = JSON(data: data)
print(json)
}
session.resume()
}
}
感谢大家的帮助!
可能您需要实施 do{} catch{}
块。在 do
块中,您必须使用 try.
您应该将其包装到 do-catch
块中。你的情况:
do {
let session = URLSession.shared.dataTask(with: url) {
(data, response, error) in
guard let data = data else {
print ("data was nil?")
return
}
let json = JSON(data: data)
print(json)
}
} catch let error as NSError {
// error
}
SwiftyJSON 初始化器throws
,声明为
public init(data: Data, options opt: JSONSerialization.ReadingOptions = []) throws
您有三个选择:
使用
do - catch
块并处理错误(推荐的)。do { let json = try JSON(data: data) print(json) } catch { print(error) // or display a dialog }
忽略错误并可选地绑定结果(如果错误无关紧要则很有用)。
if let json = try? JSON(data: data) { print(json) }
强制解包结果
let json = try! JSON(data: data) print(json)
只有在保证尝试永远不会失败的情况下才使用此选项(在这种情况下不会!)。
Try!
可以在FileManager
中使用,如果目录是框架创建的默认目录之一。