在SwiftUI中如何创建包含字典的数组并调用对应元素?
问题原因
你当前代码的核心错误是dicArray中存储的是字符串"dic1"、"dic2",而非你提前定义的两个字典变量本身,自然无法访问到字典内部的键值对。
正确实现代码
let dic1 = [ "A" : "first", "B" : "second" ] let dic2 = [ "A" : "one", "B" : "two" ] // 数组直接存储字典变量,类型为[[String: String]] var dicArray = [dic1, dic2] // 固定取第一个字典的"A"对应值(需求中的目标效果) if let targetValue = dicArray[0]["A"] { text("\(targetValue)") // 输出结果为 first } // 如需随机调用数组中的字典再取值,用以下写法 if let randomDic = dicArray.randomElement(), let randomValue = randomDic["A"] { text("\(randomValue)") // 随机输出 first 或 one }
补充说明
- 代码中使用
if let可选绑定是为了处理可选类型的异常情况:避免数组为空、字典中不存在对应键时的崩溃问题,稳定性更高 - 如果你能100%确认数组不为空、键
"A"一定存在,也可以简化为强制解包写法:text("\(dicArray[0]["A"]!)"),但该写法容错性低,不推荐在生产环境使用
内容的提问来源于stack exchange,提问作者BlondePK
相关产品推荐
相关产品推荐

