实例成员“decode”不能用于类型“JSONDecoder”;您是否打算使用这种类型的值

Gur*_*ren 3 ios swift jsondecoder

我实现 JSONDecoder 以从 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()
Run Code Online (Sandbox Code Playgroud)

最新文章模型.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


}
Run Code Online (Sandbox Code Playgroud)

Ahm*_*d F 7

article声明为:

let decoder = JSONDecoder()
let article = decoder.decode(LatestArticleModel.self , from: data)
Run Code Online (Sandbox Code Playgroud)

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

此外:swift 中的 T.Type 是什么

  • 它也是一个实例方法,而不是类方法,它的声明中没有“static”。因为我认为错误谈论的是这一点,而不是关于丢失的“self”。 (2认同)