2017-08-03 26 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) 
}