首页 > 解决方案 > 快速 if-else。当条件 == false 时,永远不会执行 else 块

问题描述

我正在尝试根据请求响应的字段之一执行特定的 segue。当“ accountRes.complete ==true ”代码正确执行时,但当它等于 false 时,永远不会执行 else 块。

AF.request(Endpoints.account, method: .get, headers: headers).response { response in debugPrint (response)
    guard let data = response.data,
        let accountRes = try? JSONDecoder().decode(AccountResponse.self, from: data) else {
        return
    }
    
    debugPrint (accountRes)
    if accountRes.complete == true {
        self.performSegue (withIdentifier: "home_segue", sender: nil)
    } else {
        print ("Not complete")
        /// Code
    }
}

标签: iosswift

解决方案


如果到达if表达式accountRes.complete但未到达表达式,trueelse肯定会执行范围。顺便说一句,如果是非可选的,那== true就是多余的。accountRes.complete

如果 aDecodingError发生,它不会被执行。添加一个do catch块,从中删除问号try?并打印范围内的error实例catch


推荐阅读