Swift 失败时返回空URL
在这样的函数中:Swift 失败时返回空URL,swift,return,closures,Swift,Return,Closures,在这样的函数中: func getMessageDetails()->URL{ if let theLinks = theMessage.links as? [[String:String]]{ let thisLink = theLinks[3]["Href"] let url = URL(string: thisLink) return url! } return
func getMessageDetails()->URL{
if let theLinks = theMessage.links as? [[String:String]]{
let thisLink = theLinks[3]["Href"]
let url = URL(string: thisLink)
return url!
}
return nil// is unacceptable, what should I put here?
}
在闭包之外我应该返回什么?在这种情况下,最好的解决方案是返回可选的URL,如果链接不是有效的URL,它也可以处理这种情况。您应该检查
thisLink
数组是否包含超过3项,以避免出现超出范围的异常:
func getMessageDetails() -> URL? {
if let theLinks = theMessage.links as? [[String:String]],
theLinks.count > 3,
let thisLink = theLinks[3]["Href"] {
return URL(string: thisLink)
}
return nil
}