我知道这个问题在初学者中很常见,但我还是会问:有两个文件,代码超级简单。而且无处不对,但我还是错了。我每次都错了。帮我理解!请!
文件#1
import SwiftUI
struct CoverImageModel: Decodable, Identifiable {
let id: Int
let name: String
init(id: Int, name: String) {
self.id = id
self.name = name
}
}
文件 #2 中的问题:
import Foundation
extension Bundle {
func decode (_ file: String) -> [CoverImageModel] {
//1. Locate JSON file
guard let url = self.url(forResource: file, withExtension: nil) else {
fatalError("Failed to locate \(file) in Bundle")
}
//2. Create a property for the data
guard let data = try? Data(contentsOf: url) else {
fatalError("Failed to load \(file) from Bundle")
}
//3. Create a decoder
let decoder = JSONDecoder()
//4. Create a property for the decoder data
guard let loaded = try? decoder.decode([CoverImageView].self, from: data) else {
fatalError("Failde to decode \(file) from Bundle")
}
//5. Return the ready-to-use data
return loaded
}
}
所以,问题是协议解码
我尝试阅读 Apple Swift 文档,在 YouTube 上寻找解决方案——我不明白……