gpt4 book ai didi

swift - 将我的代码转换为新的 Swift (2.2),字典没有数组函数?

转载 作者:可可西里 更新时间:2023-11-01 02:17:01 25 4
gpt4 key购买 nike

我正在尝试将我的代码转换为 Swift 2.2(在 Swift 2.0 发布之前我还没有打开过这段代码)。我经常做的事情之一是使用字典项的 .array 函数将字典转换为数组。这显然不再是一个功能。我应该做些什么?我认为 .elements 函数可以工作,但我无法使用数组 [index] 命令进行拉取。

谢谢!

最佳答案

有很多方法可以完成这样的事情。最简单的方法是将模型更改为字典数组(或自定义对象数组):

var people = [
["name": "Rob", "city": "New York", "state": "NY", "street": "11 Wall Street"],
["name": "Jim", "city": "Washington", "state": "DC", "street": "1600 Pennsylvania Avenue"],
["name": "Sue", "city": "Los Angeles", "state": "CA", "street": "4059 Mt Lee Dr."]
]

而且,如果你想按 name 排序:

people.sortInPlace { return $0["name"] < $1["name"] }

或者,让我们假设您真的有一个字典,其中唯一标识符是键:

var people = [
34: ["name": "Rob", "city": "New York", "state": "NY", "street": "11 Wall Street"],
42: ["name": "Jim", "city": "Washington", "state": "DC", "street": "1600 Pennsylvania Avenue"],
65: ["name": "Sue", "city": "Los Angeles", "state": "CA", "street": "4059 Mt Lee Dr."]
]

然后您可以构建一个按名称排序的标识符数组:

let sortedIdentifiers = people.map { return ($0, $1["name"]) }  // this builds array of items like `(34, "Rob")`
.sort { $0.1 < $1.1 } // this sorts that array by the second item (e.g. the name)
.map { $0.0 } // just return the identifiers sorted by name

您现在可以为 sortedIdentifiers 添加下标,例如:

print(people[sortedIdentifiers[0]])
print(people[sortedIdentifiers[1]])
print(people[sortedIdentifiers[2]])

有很多方法可以解决这个问题。如果您编辑问题以向我们展示您的模型的外观,我们或许能够提供更具体的解决方案。

关于swift - 将我的代码转换为新的 Swift (2.2),字典没有数组函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36959368/

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