我有一个@State属性,它是用我创建的结构(地标)初始化的,该结构接受一个MKPlacemark。
@State private var selectedLandmark: Landmark = Landmark(placemark: MKPlacemark())下面是该结构的代码:
import Foundation
import MapKit
struct Landmark {
let placemark: MKPlacemark
var id: UUID {
UUID()
}
var name: String {
placemark.name ?? ""
}
var title: String {
placemark.title ?? ""
}
var coordinate: CLLocationCoordinate2D {
placemark.coordinate
}
}每当这个视图中的任何状态/绑定变量有任何更新时,我都会得到一个EXC_BAD_ACCESS错误,并且没有日志。如果我删除对MKPlacemark的引用,一切都会正常工作。这可能是强引用被保留在某个地方的情况吗?
重现步骤:
创建一个“子”视图:
import SwiftUI
import MapKit
struct MKPlaceChild: View {
@Binding var showCreateEvent: Bool
@State private var selectedLandmark: Landmark = Landmark(placemark: MKPlacemark())
var body: some View {
VStack {
Text("Hello, World!")
Button("Cancel") {
self.showCreateEvent = false
}
}
}
}创建父视图:
struct MKPlaceParent: View {
@State var showCreateEvent: Bool = true
var body: some View {
VStack {
if showCreateEvent {
MKPlaceChild(showCreateEvent: $showCreateEvent)
} else {
Text("Hello")
}
}
}
}如果你点击“取消”按钮,会出现一个错误:(如有任何帮助,我们将不胜感激
发布于 2020-07-27 11:28:28
问题在错误的初始化器中。这里是固定的部分(用Xcode12/ iOS 14测试)
struct MKPlaceChild: View {
@Binding var showCreateEvent: Bool
@State private var selectedLandmark: Landmark = Landmark(placemark:
MKPlacemark(coordinate: CLLocationCoordinate2D())) // << here !!
...https://stackoverflow.com/questions/63107790
复制相似问题