if let tenorReceived = try JSONDecoder().decode([TenorModel].self, from: responseString){
}
我收到错误Initializer for conditional binding must have Optional type, not '[TenorModel]'
如何解决这个问题?
我必须使用try
而不是try?
这样我才能捕获错误,如何做到这一点?
if let tenorReceived = try JSONDecoder().decode([TenorModel].self, from: responseString){
}
我收到错误Initializer for conditional binding must have Optional type, not '[TenorModel]'
如何解决这个问题?
我必须使用try
而不是try?
这样我才能捕获错误,如何做到这一点?
错误表明
decode()
返回一个非可选值:一个TenorModel
对象数组 -[TenorModel]
。由于
if let
是一个需要与可选类型一起使用的条件绑定,并且您的输出是非可选的(这意味着无论如何您都会得到一个数组,即使它是空的),所以错误是有意义的。这应该可以做到:
if let
期望解包为可选类型,但 try 要么成功(并返回非可选值),要么失败并抛出错误。这使得 do-catch 成为在这种情况下处理错误的合适构造。