实例成员 'decode' 不能用于类型 'JSONDecoder';你是不是想改用这种类型的值

Instance member 'decode' cannot be used on type 'JSONDecoder'; did you mean to use a value of this type instead

我实施 JSON 解码器以从 Wordpress json 获取 JSON 数据 我的结构在另一个 swift 文件中,我得到这个错误这是我的代码。在让文章我得到错误

URLSession.shared.dataTask(with: url!){ (data,response ,err) in
        guard let data = data else{return}
        let article = JSONDecoder.decode(LatestArticleModel , from: data)

    }.resume()

LatestArticleModel.swift

struct LatestArticleModel : Decodable {

    var id: Int
    var date: String
    var link: String
    var title_rendered :String
    var author: Int
    var category: Int
    var img_link: String
    var content_rendered: String
    var exerpt_rendered: String


}

article 应声明为:

let decoder = JSONDecoder()
let article = decoder.decode(LatestArticleModel.self , from: data)

如果您检查 decode(_:forKey:),您会发现它是一个实例方法(不是静态方法),这意味着您应该通过 JSONDecoder 的实例调用它。另外,type参数是T.Type元类型),这意味着它应该是self 的类型。

此外:.

编译器错误告诉您的问题是您正在尝试调用类型的实例方法而不是该类型的实例。您需要创建 JSONDecoder 的实例并在其上调用 decode

一旦你解决了这个问题,你也会 运行 遇到需要将元类型传递给方法的问题,所以 LatestArticleModel.self 而不是 LatestArticleModel.

let article = JSONDecoder().decode(LatestArticleModel.self, from: data)