iOS 无法将 [字符串:任何?] 转换为 [字符串] 如何转换?



我正在匆忙完成一个项目,无法研究找到答案。我希望我能得到一些帮助。

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)
}

最新更新