我正在使用SwiftUI的https://developer.apple.com/tutorials/swiftui/tutorials,并且下载了 macOS Catalina和Xcode 11.0 beta。
尝试以下操作后,画布崩溃且无法恢复:
代码只是声明了UI,没有什么太花哨的了。
import SwiftUI
struct LandmarkDetail : View {
var landmark: Landmark
var body: some View {
VStack {
MapView(coordinate: landmark.locationCoordinate)
.edgesIgnoringSafeArea(.top)
.frame(height: 300)
CircleImage(image: landmark.image(forSize: 250))
.offset(y: -130.0)
.padding(.bottom, -130.0)
VStack(alignment: .leading) {
Text(landmark.name)
.font(.title)
.multilineTextAlignment(.center)
HStack {
Text(landmark.park)
.font(.subheadline)
Spacer()
Text(landmark.state)
.font(.subheadline)
}
}
.padding()
Spacer()
}
.navigationBarTitle(Text(landmark.name), displayMode: .inline)
}
}
#if DEBUG
struct ContentView_Previews : PreviewProvider {
static var previews: some View {
LandmarkDetail(landmark: landmarkData[0])
}
}
#endif
我希望画布显示UI,但是我不断收到
Cannot preview in this file --- MyApp.app may have crashed
错误。这是一个看起来像的图像:
请注意,在一定程度上一切正常。
在此先感谢您的帮助!
最佳答案
我犯了同样的错误;我通过从教程中下载更新的资源进行修复。基本上,我认为您已将isFavorite
添加到Landmark
模型中,但是在JSON中缺少该字段,因此解码失败。下载并从教程资源中替换新的JSON。
如果问题不是isFavorite
,则应该缺少另一个资源,只需确保每次从教程中上新课时都下载新的Landmark
模型和相关资源。
这是Apple的错,因为他们没有提到您需要更新JSON文件以匹配Landmark
模型。
编辑
如果仍然有问题,只需在此处添加json和Landmark
模型,以便我们对其进行了解