2017-08-03 28 views
-2

我正在冲一个项目,我无法研究找到答案。我希望我能在这方面得到一些帮助。iOS无法将[String:Any?]转换为[String]如何转换?

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

我想你换中得到的值 - 就在LISTNAME

+0

你想要输出来自你的字典数组?我仍然在努力解决你实际问到的问题。哈哈:D – Fogmeister

+0

兄弟,你正试图分配一个字典和字符串数组。 –

回答

2

呵呵,刚刚看到您的编辑。帮助很多。

为了得到listName从每个字典,你可以做这样的价值...

forPickArray = tt.flatMap { $0["listName"] } 

重命名你的变量有合理的名称。 tt不是一个明智的名字。我不知道它是什么:D

+0

谢谢!但我试图获得价值。我更新了qn – OneNation

+0

很好用! – OneNation

1

循环,你是否试图从字典中提取键并将其转换为数组?那么你需要做到以下几点:

var arr: [String] = Array(tt[index-1].keys) 
forpickarray.append(contentsOf: arr) 

因为tt是字典的数组,在tt每一个元素可以有多个键

+0

谢谢!但我试图获得价值。我更新了qn – OneNation

1

请使用本机Swift语法而不是丑陋Objective-cish code。

是没有必要的一个循环:

forpickarray = tt.flatMap{ $0["listName"] as? String } 

即使是需要一个循环有一个更有效的方式比(零!)指数型for循环:

for item in tt { 
    forpickarray.append(item) 
}