Ios 实例成员';解码';不能用于类型';JSONDecoder';;您的意思是使用这种类型的值吗
我在上实现了JSONDecoder,以从WordPressJSON获取JSON数据 我的结构在另一个swift文件中我得到了这个错误这是我的代码。在let文章中,我得到了错误Ios 实例成员';解码';不能用于类型';JSONDecoder';;您的意思是使用这种类型的值吗,ios,swift,jsondecoder,Ios,Swift,Jsondecoder,我在上实现了JSONDecoder,以从WordPressJSON获取JSON数据 我的结构在另一个swift文件中我得到了这个错误这是我的代码。在let文章中,我得到了错误 URLSession.shared.dataTask(with: url!){ (data,response ,err) in guard let data = data else{return} let article = JSONDecoder.decode(LatestArticleM
URLSession.shared.dataTask(with: url!){ (data,response ,err) in
guard let data = data else{return}
let article = JSONDecoder.decode(LatestArticleModel , from: data)
}.resume()
斯威夫特晚星模型
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
}
文章
应声明为:
let decoder = JSONDecoder()
let article = decoder.decode(LatestArticleModel.self , from: data)
如果选中,您将看到它是一个实例方法(不是静态的),这意味着您应该通过jsondeconder
的实例调用它。另外,type
参数是T.type(元类型),这意味着它应该是该类型的self
此外:。编译器错误告诉您的问题是,您试图调用类型的实例方法,而不是该类型的实例。您需要创建一个
JSONDecoder
的实例,并在该实例上调用decode
一旦解决了这个问题,您还将遇到需要将元类型传递给方法的问题,因此LatestArticleModel.self
而不是LatestArticleModel
let article = JSONDecoder().decode(LatestArticleModel.self, from: data)
JSONDecoder.decode(LateStartClemodel,from:data)
=>JSONDecoder().decode(LateStartClemodel.self,from:data)
?它是一个实例方法,而不是类方法,因此需要使用对象。像让jsonDecoder=jsonDecoder();jsonDecoder.decode(LatestArticleModel.self,from:data)
,它缺少self
。它也是一个实例方法,而不是类方法,在声明中没有static
。因为我认为错误是关于这一点的,而不是关于丢失的self
。它现在起作用了,谢谢。我将添加这是我的代码let decoder=JSONDecoder()let article=try!decoder.decode(LatestArticleModel.self,from:data)