【问题标题】:Error in calling json api for cocktailDB in iOS swift在 iOS swift 中为鸡尾酒数据库调用 json api 时出错
【发布时间】:2021-08-09 07:33:46
【问题描述】:

我正在尝试快速调用 json api。我正在使用 CocktailDB,并且 swift 用于 iOS。我收到一条错误消息,提示“线程 3:致命错误:在展开可选值时意外发现 nil”。任何人都知道为什么数据没有被提取并且在解码时为零?

代码如下:

class Drinks {
    //URL Links
    let shotURL = "www.thecocktaildb.com/api/json/v1/1/filter.php?c=Shot"
    
    //Response Structure
    struct shotResponse: Codable {
        var drinks: [MyShotDrink]
    }
    
    //Drink Structure
    struct MyShotDrink: Codable {
        var strDrink = ""
        var strDrinkThumb = ""
        var idDrink = ""
        
    }
    
    
    var shotArray: [MyShotDrink] = []
    
    func getData(completed: @escaping ()->()){
        
        //Create a URL
        guard let url = URL(string: shotURL) else {
            print("ERROR: Could not create a URL")
            completed()
            return
            
        }
        
        //Create a session
        let session = URLSession.shared
        
        //Get data
        let task = session.dataTask(with: url) { data, response, error in
            if let error = error {
                print("ERROR: \(error.localizedDescription)")
            }
            
            //Handle data
            do {
                let returned = try JSONDecoder().decode(shotResponse.self, from: data!)
                self.shotArray = returned.drinks
            } catch {
                print("JSON ERROR: \(error.localizedDescription)")
            }
            completed()
        }
        task.resume()
    }
}

【问题讨论】:

    标签: ios json swift api


    【解决方案1】:

    代码崩溃是因为您在出现URLSession 错误后继续操作。您应该在打印错误后插入return 语句。

    错误提示

    不支持的网址

    查看 URL 会发现问题。纯www URL 无效,URL 需要一个方案 (http),现代 URL 甚至使用 https

    let shotURL = "https://thecocktaildb.com/api/json/v1/1/filter.php?c=Shot"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-22
      • 1970-01-01
      • 2019-01-09
      • 1970-01-01
      • 1970-01-01
      • 2017-01-20
      • 1970-01-01
      • 2013-12-23
      相关资源
      最近更新 更多