使用未解析的标识符“地图”SwiftUI
Posted
技术标签:
【中文标题】使用未解析的标识符“地图”SwiftUI【英文标题】:Use of unresolved identifier 'Map' SwiftUI 【发布时间】:2020-12-24 12:40:55 【问题描述】:我正在关注 SwiftUI 的 official tutorial 并遇到错误消息“使用未解析的标识符“地图”。即使我复制并粘贴教程中的代码,它仍然给我错误。我已经查看了一些类似问题的解决方案,但似乎找不到任何可行的方法。代码如下。
import SwiftUI
import MapKit
struct MapView: View
@State private var region = MKCoordinateRegion(
center: CLLocationCoordinate2D(latitude: 34.011_286, longitude: -116.166_868),
span: MKCoordinateSpan(latitudeDelta: 0.2, longitudeDelta: 0.2)
)
var body: some View
Map(coordinateRegion: $region)
struct MapView_Previews: PreviewProvider
static var previews: some View
MapView()
如果这真的很明显,我深表歉意 - 但我是 Swift/SwiftUI 的新手,看不出问题出在哪里。提前致谢!
【问题讨论】:
Map
自 Xcode 12 / ios 14.0 起可用。也许您使用较早的部署目标或环境。
Map 从 iOS14 开始仅在文档中可用: // 使用 MapKit 导入 SwiftUI 时可用 @available(iOS 14.0, tvOS 14.0, macOS 11.0, watchOS 7.0, *) public struct Map在这种情况下我也遇到了麻烦。 因此,我使用 UIViewRepresentable 使用 2 种方法制作 View 方法:'makeUIView' 和 'updateUIView'。
地图视图
import SwiftUI
import MapKit
struct MapViewUI: UIViewRepresentable
func makeUIView(context: Context) -> MKMapView
MKMapView(frame: .zero)
func updateUIView(_ view: MKMapView, context: Context)
let coordinate = CLLocationCoordinate2D(
latitude: 2.6540427, longitude: 98.8932576)
let span = MKCoordinateSpan(latitudeDelta: 2.0, longitudeDelta: 2.0)
let region = MKCoordinateRegion(center: coordinate, span: span)
view.setRegion(region, animated: true)
而且,你可以这样称呼你的视图
struct MapPageView: View
var body: some View
VStack
MapViewUI()
.frame(height: 300)
【讨论】:
工作 - 经过一番战斗 - 但对于约书亚树,坐标应该是:纬度:33.8734,经度:-115.9010)【参考方案2】:问题与导入 MapKit 有关。因为 Map 是在 MapKit 中定义的。请验证您是否能够正确导入 MapKit
【讨论】:
以上是关于使用未解析的标识符“地图”SwiftUI的主要内容,如果未能解决你的问题,请参考以下文章
在代码“使用未解析的标识符 Firestore”中出现错误,但程序运行良好 SwiftUI
计时器经过后,SwiftUI 应用程序的 UI 测试未找到设置了可访问性标识符的元素