首页 > 解决方案 > 如何将数据插入此字典 - Swift 4

问题描述

我需要将数据插入到这种类型的字典中

var dict : Dictionary = [Int: [(TimelinePoint, UIColor, String, String, String?, String?, String?)]]()

为了插入数据,我正在使用这种结构,

 dict[dictionaryKey] = ([TimelinePoint(), performance.timelineColor, "12:30", performance.name, "asdf", "nil", "nil"] as? [(TimelinePoint, UIColor, String, String, String?, String?, String?)])

dictionaryKey = 1 (integer) 这不起作用,我没有收到任何错误,但字典是空的。

但是,这没有任何问题

let data:[Int: [(TimelinePoint, UIColor, String, String, String?, String?, String?)]] = [0:[(TimelinePoint(), UIColor.green, "12:30", "Lorem \n ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.", "asdf", "asdf", "Sun")]

谁能帮帮我,问题出在哪里?

标签: swiftdictionary

解决方案


你可以试试这个

 dict[dictionaryKey] = ([(TimelinePoint(), performance.timelineColor, "12:30", performance.name, "asdf", "nil", "nil")] as? [(TimelinePoint, UIColor, String, String, String?, String?, String?)])

我认为您在第一种情况下缺少小括号“()”来包围您的值。您在第二种情况下这样做,因为它有效。

结果,您在第一种情况下的数据类型不正确。

这可能会暂时解决您的问题。但是,由于将元组用于这种复杂的数据类型,您将来会遇到麻烦。因此,请遵循 Swift 的建议并使用Struct而不是Tuples用于大型数据类型。


推荐阅读