我想制作一個輔助函式,它接受可編碼/可解碼型別的輸入,以便對 json 進行編碼或解碼。我努力了
static func loadCache<T:Decodable>(fileName:String, type:T)throws->T{
let data = try FileManager.loadCache(fileName: fileName)
return try JSONDecoder().decode(T.self, from: data)
}
使用功能
let products = try loadCache(fileName: Product.cacheFileName(), type: [Product])
我收到錯誤 Type '[Product].Type' cannot conform to 'Decodable'
將其傳遞給函式的正確方法是什么 謝謝
uj5u.com熱心網友回復:
你很親近。你的語法有點不正確。您希望將型別作為值傳遞,而不是型別的值,因此這是您需要的簽名:
static func loadCache<T:Decodable>(fileName:String, type: T.Type) throws -> T{
^^^^^
Swift 要求您非常明確地將型別作為值傳遞。它需要添加.self:
let products = try loadCache(fileName: Product.cacheFileName(),
type: [Product].self)
^^^^^
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/387247.html
