实例成员 '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)
我实施 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)