Core data 迅捷+;核心数据-更新对象(详细信息->;详细信息编辑)

Core data 迅捷+;核心数据-更新对象(详细信息->;详细信息编辑),core-data,swiftui,xcode11,Core Data,Swiftui,Xcode11,目标:使用SwiftUI更新核心数据对象:DetailView->EditDetail->DetailView(已更新) 问题:下面的代码可以工作,但会创建一个新对象,而不是更新现有对象 import SwiftUI struct DetailView: View { var order = Order() @State var showOrderEdit = false var body: some View {

目标:使用SwiftUI更新核心数据对象:DetailView->EditDetail->DetailView(已更新)

问题:下面的代码可以工作,但会创建一个新对象,而不是更新现有对象

import SwiftUI

struct DetailView: View {
    
    var order = Order()
    
    @State var showOrderEdit = false


    var body: some View {
        
        Form{
        
        Text(order.tableNumber)
        Text(order.pizzaType)
            
        }
        .navigationTitle(order.pizzaType)
        
        .toolbar {

            ToolbarItem(placement: .primaryAction) {
                
                
                //edit button
                Button(action: {
                    showOrderEdit = true
                }, label: {
                    Text("Edit")
                })
                .sheet(isPresented: $showOrderEdit) {
                    OrderEdit(order: order)
                }
            }
        }

    }
}

在每个视图中创建新的
Order
对象,以便将其作为新对象存储到数据库中。相反,您需要将父视图(显示DetailView)中的CoreData对象作为观察对象注入

struct DetailView: View {
    
    @ObservedObject var order: Order   // << here !!
    
// .. other code
struct DetailView:View{

@观察对象变量顺序:顺序//天才,伙计!你有赞助人吗?这样我就可以给你一点捐款了?
struct DetailView: View {
    
    @ObservedObject var order: Order   // << here !!
    
// .. other code
struct DetailEdit: View {
    
    @State var tableNumber = ""
    
    @Environment(\.managedObjectContext) private var viewContext
    @Environment (\.presentationMode) var presentationMode

    @ObservedObject var order: Order          // << here !!

// ... other code