我想知道如何根据所提供的数据使字典的键具有多个值。
附上基本示例:
var temp = [String: String] ()
temp ["dinningRoom"] = "Table"
temp ["dinningRoom"] = "Chair"
在这种情况下,我总是返回"主席",我添加的最后一个,我需要返回我在同一个键上添加的所有项目。
在这种情况下," dinningRoom" key应该有两个项目"表"和"主席"。
答案 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