My code is as follows。The name in the data is not changed,but hasChanges always returned true ,Did I do something wrong? Thank you very much for your help !
struct SwiftUI: View {
@Environment(\.managedObjectContext) var moc
@Environment(\.presentationMode) var pre: Binding<PresentationMode>
var data: CoreData
@State private var name = ""
var body: some View {
NavigationView {
HStack {
TextField("name", text: self.$name)
}.onAppear{
self.name = self.data.name ?? ""
}
Button(action: dataSave) {
HStack {
Text("Done")
}
}
}
}
func dataSave() {
self.data.name = self.name
if moc.hasChanges {
do {
try moc.save()
self.pre.wrappedValue.dismiss()
} catch { print(error.localizedDescription) }
} else {
self.pre.wrappedValue.dismiss()
}
}
}
Why is it always returned true here?
moc.hasChanges