gpt4 book ai didi

ios - 遍历字典数组以获取所有键

转载 作者:行者123 更新时间:2023-11-28 10:14:25 26 4
gpt4 key购买 nike

我在 User 对象中有一组名为 rooms 的字典 [[String : AnyObject]] - 每个字典都有一个名称String 和一个 id 作为 AnyObject。

我想用名称填充 TableView ,所以我尝试遍历数组并从字典中获取字符串值。

        if let roomDict = myUser.rooms as? [[String : AnyObject]] {
for (roomNames, _) in roomDict {
cell.textLabel?.text = roomNames
}
}

我是个新手,从我在教程中看到的情况来看,当循环遍历字典时,您可以使用下划线来指定您不需要第二个值。因此,只需获取所有第一个值(在本例中为名称),并将它们设置为 roomNames 变量。

但是我在这里很困惑,因为我不是在循环字典,而是在字典数组中循环。所以我不确定该怎么做。我进行了搜索,我看到的结果通常是询问有关 JSON 的信息,但这里不是这种情况。我该怎么做?

感谢您的帮助!

最佳答案

首先,您的字典结构不理想。与其将键作为房间名称,将值作为标识符,您的字典应该具有已知的键名和变量值。键不应该是字典中的“数据”。

所以,而不是

["room1":1] 

如果是的话就更好了

["roomName":"room1", "roomID":1]

然而,对于您当前的结构,假设每个字典只有一个键,即房间名称,您可以通过以下方式获取名称:

if let rooms = myUser.rooms as? [[String : AnyObject]] {
roomNames = rooms.map({ $0.keys.first!})
}

如果你使用我建议的更好的结构,那就是

if let rooms = myUser.rooms as? [[String : AnyObject]] {
roomNames = rooms.map({ $0["roomName"] as? String ?? ""})
}

关于ios - 遍历字典数组以获取所有键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43219045/

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