我正在匆忙完成一个项目,无法研究找到答案。我希望我能得到一些帮助。
var tt: Array<[String:Any]> = []
var forpickarray: [String] = []
错误:无法将 [字符串:任何?] 转换为 [字符串]
for index in 1...self.tt.count {
var arr: [String] = self.tt[index-1]
forpickarray.append(self.tt[index-1])
}
我正在尝试获取值 - 只是列表名称
[["total": 2, "listName": Testing, "listid": 1], ["total": 1, "listName": Yeeea, "listid": 2]]
哦,刚刚看到你的编辑。 帮助很大。
要从每个字典中获取listName
的值,您可以这样做...
forPickArray = tt.flatMap { $0["listName"] }
重命名变量以具有合理的名称。tt
不是一个明智的名称。我不知道这是什么:D
在你的for循环中,你是否试图从字典中提取键并将其转换为数组? 然后,您需要执行以下操作:
var arr: [String] = Array(tt[index-1].keys)
forpickarray.append(contentsOf: arr)
由于tt
是一个字典数组,因此tt
中的每个元素都可以有许多键
请使用原生 Swift 语法,而不是丑陋的Objective-cish代码。
根本不需要循环:
forpickarray = tt.flatMap{ $0["listName"] as? String }
即使需要一个循环,也有比(零!基于索引的for
循环:
for item in tt {
forpickarray.append(item)
}