我读过许多关于此错误的问题,这些问题与取消工作表有关,但没有一个涉及 SwiftUI 的地图。以下代码会生成此错误。视图模型中没有任何内容被更新。我只是将一个区域的绑定传递到 Map 初始值设定项中。对区域使用本地状态变量不会出现错误。我正在运行 Xcode 14.0。如果我删除 @Published 属性包装器,则错误就会消失。因此,我对视图模型应如何通知视图该区域已更改(可能是由于位置更新)感到困惑。
import SwiftUI
import MapKit
class MM : ObservableObject {
@Published var region = MKCoordinateRegion(center: CLLocationCoordinate2D(latitude: 51.507222, longitude: -0.1275), span: MKCoordinateSpan(latitudeDelta: 0.5, longitudeDelta: 0.5))
}
struct SimpleMap: View {
@ObservedObject var mm = MM()
@State private var region = MKCoordinateRegion(center: CLLocationCoordinate2D(latitude: 51.507222, longitude: -0.1275), span: MKCoordinateSpan(latitudeDelta: 0.5, longitudeDelta: 0.5))
var body: some View {
//Error
Map(coordinateRegion: $mm.region)
//No Error
//Map(coordinateRegion: $region)
}
}
Run Code Online (Sandbox Code Playgroud)