当前位置: 首页 > 知识库问答 >
问题:

请问 swift 中 的这个 Map() 报错是什么原因?

太叔京
2023-10-16

我是一个菜鸟,我在跟着 swift 官方文档进行学习。
↓这是官方的示例图片,以证明我没有写错
image.png
示例代码如下,以便于大家复制

import SwiftUIimport MapKitstruct MapView: View {    var body: some View {        Map(initialPosition: .region(region))    }    private var region: MKCoordinateRegion {        MKCoordinateRegion(            center: CLLocationCoordinate2D(latitude: 34.011_286, longitude: -116.166_868),            span: MKCoordinateSpan(latitudeDelta: 0.2, longitudeDelta: 0.2)        )    }}#Preview {    MapView()}

但是我在 Xcode 中却无法编译成功(最后 struct... 不是我自己改的,文件创建出来就是这样的,好像是写法改了)
image.png

共有1个答案

孔欣荣
2023-10-16

根据你提供的代码和错误信息,问题可能出在 MapView 结构体的定义上。在 SwiftUI 中,使用 #Preview 语法来预览视图是错误的。你需要将这部分代码删除或者注释掉。

将代码修改如下:

import SwiftUIimport MapKitstruct MapView: View {    var body: some View {        Map(initialPosition: .region(region))    }    private var region: MKCoordinateRegion {        MKCoordinateRegion(            center: CLLocationCoordinate2D(latitude: 34.011_286, longitude: -116.166_868),            span: MKCoordinateSpan(latitudeDelta: 0.2, longitudeDelta: 0.2)        )    }}

现在,你的 MapView 结构体应该可以正常编译并运行了。如果你想要预览这个地图视图的话,你可以在 SwiftUI Preview 中进行预览。但是请注意,MapView() 是无法直接在 SwiftUI Preview 中使用的,因为它需要一个 @State 属性或者一个特定的 @Environment 对象来工作。你可以在 Preview 的主视图外面包裹一层 AnyView 或者 AnyView(_:) 来使其正常显示。

例如:

#if DEBUGstruct ContentView_Previews: PreviewProvider {    static var previews: some View {        AnyView(MapView())    }}#endif
 类似资料:
  • 本文向大家介绍请问AOP的原理是什么?相关面试题,主要包含被问及请问AOP的原理是什么?时的应答技巧和注意事项,需要的朋友参考一下 考察点:动态代理 参考回答: AOP(Aspect Orient Programming),指面向方面(切面)编程,作为面向对象的一种补充,用于处理系统中分布于各个模块的横切关注点,比如事务管理、日志、缓存等等。AOP实现的关键在于AOP框架自动创建的AOP代理,AO

  • 下面我写了一个C++函数,它通过一个整数向量进行循环。每通过一次,它就从所有的数字中减去最小的数字。它应该在每次传递时返回非零元素的数量(这存储在向量结果中并返回)。然而,每当我尝试运行时,我都会得到“std::bad_alloc”。当删除行“flag=true”时,错误就会消失。我将需要它工作,以便while循环中断。帮我修好这个。

  • 有没有大佬提供下这种echart 图表的示例参考一下

  • 第一次使用这个报错有谁知道是怎么回事吗?

  • 我对编程很陌生,我已经自学了将近一个月了,有谁能给我解释一下我代码中错误的原因吗?在“Total(moneyConv(moneySum*moneyRate))”中出错。行,表示实际和形式的论点在长度上是不同的。我检查了我所有的参数,我觉得很好。多谢!