gpt4 book ai didi

swift - 访问字典中的字典并将其分配给变量

转载 作者:行者123 更新时间:2023-11-28 07:43:08 30 4
gpt4 key购买 nike

我正在尝试使用字典来存储有关港口的信息,它在字典中没有“[]”的情况下工作,但是当我试图在内部存储更多信息并尝试获取坐标和其他信息时,它失败了我。

let dict = [
"Holmsbu": ["cord":CLLocationCoordinate2DMake(59.5, 10.4)],
"Kragerø": ["cord":CLLocationCoordinate2DMake(59.1, 10.4)],
"Risør": ["cord":CLLocationCoordinate2DMake(59.2, 10.4)],
"Strömstad": ["cord":CLLocationCoordinate2DMake(59.3, 10.4)]]

for havner in dict {
map.setRegion(MKCoordinateRegionMake(havner.value, MKCoordinateSpan(latitudeDelta: 0.1, longitudeDelta: 0.1)), animated: true)
let mk = MKPointAnnotation()
mk.coordinate = havner.value
mk.title = havner.key
map.addAnnotation(mk)
}
}

我正在尝试这样做

 let dict = ["Holmsbu": ["cord":CLLocationCoordinate2DMake(59.5, 10.4), "power": "yes", "description":"DESCRIPTION HERE"]

然后像这样访问字典的描述部分:

mk.subtitle = havner.description

错误:

Cannot convert value of type '[String : CLLocationCoordinate2D]' to expected arg

Cannot assign value of type '[String : CLLocationCoordinate2D]' to type 'CLLocationCoordinate2D'

最佳答案

value[String : CLLocationCoordinate2D]

类型的字典

您必须获取键 cord 的值,只有当有更多键值对时才需要类型转换。

for havner in dict {
map.setRegion(MKCoordinateRegionMake(havner.value, MKCoordinateSpan(latitudeDelta: 0.1, longitudeDelta: 0.1)), animated: true)
let mk = MKPointAnnotation()
mk.coordinate = havner.value["cord"]! // as! CLLocationCoordinate2D
mk.title = havner.key
map.addAnnotation(mk)
}
}

mk.subtitle = havner.value["description"] as! String

我建议使用结构

struct Havner {
let name : String
let coordinate : CLLocationCoordinate2D
let description : String
}

和一个 Havner 数组,然后你可以使用点语法,如 havner.description

关于swift - 访问字典中的字典并将其分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51677034/

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