Swift词典,具有多个值的键

时间:2018-04-19 08:31:36

标签: swift dictionary

我想知道如何根据所提供的数据使字典的键具有多个值。

附上基本示例:

var temp = [String: String] ()

temp ["dinningRoom"] = "Table"
temp ["dinningRoom"] = "Chair"

在这种情况下,我总是返回"主席",我添加的最后一个,我需要返回我在同一个键上添加的所有项目。

在这种情况下," dinningRoom" key应该有两个项目"表"和"主席"。

3 个答案:

答案 0 :(得分:2)

您可以声明一个值为数组的字典,这可以包含您想要的数据,例如:

var temp = [String: [String]]()

temp["dinningRoom"] = ["Table", "Chair", "Bottle"]

如果你想添加一个新元素,你可以这样做:

if temp["dinningRoom"] != nil {
    temp["dinningRoom"]!.append("Flower")
} else {
    temp["dinningRoom"] = ["Flower"]
}

现在temp["dinningRoom"]包含["Table", "Chair", "Bottle", "Flower"]

答案 1 :(得分:1)

像这样使用字典:

var temp = [String: Any]()

temp["dinningRoom"] = ["Table", "Chair"]

如果你想从dinningRoom获取所有元素。你可以用这个:

let dinningRoomArray = temp["dinningRoom"] as? [String]

for room in dinningRoomArray{
    print(room)
}

它不是编译代码,但我的意思是说我们可以使用Any作为值而不是String或String数组。当你从Any转换为[String]时 用作?该应用程序可以处理零值。

答案 2 :(得分:1)

您可以使用 Swift Tuples 来处理此类情况。

//Define you tuple with some name and attribute type
typealias MutipleValue = (firstObject: String, secondObject: String)

var dictionary = [String: MutipleValue]()
dictionary["diningRoom"] = MutipleValue(firstObject: "Chair", secondObject: "Table")

var value = dictionary["diningRoom"]
value?.firstObject