SwiftUI 遇到Simultaneous accesses to XXX, but modification requires exclusive access的解决办法
本质上这个问题是一个系统bug,swiftUI中,如果你的List下不完全是依靠Foreach加载的core data的数据的话(即,你在list中添加了其他的View,例如自己写了个自定义的Title等),而你又提供了删除或者移动row的方法时,就会出现这种错误。
这是由于swiftUI Foreach的onDelete的方法没有兼容上面所述的情况造成的
目前可以使用的的解决办法是这样的:
这是由于swiftUI Foreach的onDelete的方法没有兼容上面所述的情况造成的
目前可以使用的的解决办法是这样的:
viewContext.perform { offsets.map { molts[$0] }.forEach(viewContext.delete) do { try viewContext.save() } catch { viewContext.rollback() userMessage = "\(error): \(error.localizedDescription)" displayMessage.toggle() } }在你的操作方法外,再套一层,调用
viewContext.perform
即可