我有一个“食谱”结构,其实例是通过解析JSON
文件创建的。映射到 JSON的所有属性Recipe
,除了一个:id
.
我希望每个 struct 实例都可以通过此属性唯一标识,并且应该在实例化 struct 时生成它,但是,当创建 struct 实例时,它们的所有id
s 都是nil
.
食谱.swift
import Foundation
struct Recipe: Identifiable, Decodable {
var id = UUID()
let name:String
let featured:Bool
let image:String
let description:String
let prepTime:String
let cookTime:String
let totalTime:String
let servings:Int
let ingredients:[String]
let directions:[String]
}
RecipeMode.swift(Recipe 结构的实例)
import Foundation
import SwiftUI
class RecipeModel {
var recipes = loadRecipes()
}
func loadRecipes() -> [Recipe] {
var recipes = [Recipe]()
let fileURL = URL(fileURLWithPath: Bundle.main.path(forResource: "recipes", ofType: "json")!)
do {
let data = try Data(contentsOf: fileURL)
recipes = try JSONDecoder().decode([Recipe].self, from: data)
} catch {
print(error)
}
return recipes
}