Hello everyone!
So I've created a new structure called OrderModel
struct OrderModel: Codable {
var type: Int
var quantity: Int
var extraFrosting = false
var addSprinkles = false
var name: String
var streetAddress: String
var city: String
var zip: String
var specialRequestEnabled = false { ... }
var cost: Double { ... }
static let types = ["Vanilla", "Strawberry", "Chocolate", "Rainbow"]
}
This is what my class looks like:
class OrderViewModel: ObservableObject, Codable {
@Published var order = OrderModel() // Missing argument for parameter 'from' in call
enum CodingKeys: CodingKey {
case order
}
func encode(to encoder: Encoder) throws {
var containter = encoder.container(keyedBy: CodingKeys.self)
try containter.encode(order, forKey: .order)
}
required init(from decoder: Decoder) throws {
let containter = try decoder.container(keyedBy: CodingKeys.self)
order = try containter.decode(order.self, forKey: .order)
}
init() {}
}
I do not really know how to display this data now..
struct CupCake: View {
@StateObject var vm = OrderViewModel()
var body: some View {
NavigationView {
Form {
Section {
Picker("Select your cake type", selection: $vm.order.type ) {
ForEach(OrderModel.type.indices) {
Text(OrderViewModel.types[$0])
}
}
Stepper("Number of cakes: \(order.quantity)", value: $order.quantity, in: 3...20)
}
I have tried with :
Picker("Select your cake type", selection: $vm.order.type ) { ... }
Picker("Select your cake type", selection: $OrdelModel.type ) { ... }