gpt4 book ai didi

arrays - 如何将数据传递到 swiftui View 并访问它

转载 作者:行者123 更新时间:2023-11-28 13:22:54 24 4
gpt4 key购买 nike

我试图将数据传递到 swiftui View 以在初始化时显示,但我无法让它工作。

这是我将数据传递到“MarkerInfoWindow.swift” View 的代码:

func mapView(_ mapView: GMSMapView, markerInfoContents marker: GMSMarker) -> UIView? {
print("Showing marker infowindow")
print("marker.userData: \(marker.userData)")
let mUserData = marker.userData as? [String:String]
print("mUserData?['name']", (mUserData?["name"]) ?? "mUserData[name] was nil")

let mInfoWindow = UIHostingController(rootView: MarkerInfoWindow(placedata: mUserData!))

return mInfoWindow.view
}

这是我的“MarkerInfoWindow.swift” View 的代码:

struct PlaceDataStruct {
var name : String
var place_id : String
}


struct MarkerInfoWindow: View {

var placedata: [PlaceDataStruct]

var body: some View {

//Here is where i keep getting errors regardless if i use this method or dot notation
Text(placedata["name"])

}
}

我不确定我是否错误地实现了我的 PlaceDataStruct。有谁知道我做错了什么,以便每次初始化 View 时都能显示正确的数据?

最佳答案

您正在 MarkerInfoWindow 期待一个结构数组,但您传递的数据是一个字典,格式为 [String: String]

您应该更新您的 MarkerInfoWindow 以接受字典。这是一个如何做到这一点的例子。

struct MarkerInfoWindow: View {

var placedata: [String: String] // update to be dictionary

var body: some View {

Text(placedata["name", default: ""]) // use correct notation for accessing dictionary

}
}

在将数据传递给 MarkerInfoWindow 之前,如果您的意图是正确的,您还可以强制解包数据。但请注意,如果您的数据不存在,那么它会使您的应用程序崩溃。

关于arrays - 如何将数据传递到 swiftui View 并访问它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58840732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com