2017-10-12 41 views
0

我已經看過這裏的幾個不同的帖子,而且我似乎無法得到我特別想要做的工作。我試圖宣佈一個空的字典陣列。這個問題是我每次嘗試遍歷數組中的每個字典時(沒有運行),我得到一個錯誤,基本上說我設置數組的方式不正確。這段代碼在我的幻燈片中刪除函數,因此如果用戶沒有先填充字符串數組,就不能運行它。這是我的代碼。聲明一個字典數組,其中每個鍵的值是另一個數組(Swift)

var leagueList = [Dictionary<String, Array<String>>]() 


for dict in leagueList { 

    let key = dict.key as String! 

    if key == deletedAge { 
     self.leagueList.removeValue(forKey: deletedAge!) 
    } 
} 
+0

沒關係,我可能已經讀過你的問題是錯誤的。 編輯:我做了 – bhow

+0

什麼是錯誤,你究竟在做什麼? –

+0

你期待'dict.key'做什麼?字典可以有多個關鍵字。 – Hamish

回答

1

你有幾件事情在這裏。您已將leagueList正確聲明爲使用泛型的字典數組。這很酷。

你的問題是:

1)self.leagueList.removeValue(forKey: deletedAge!)正在尋找一個陣列中的一個關鍵。數組沒有密鑰,所以你會在那裏得到一個錯誤。

2)dict.key似乎假定詞典中有一個單一的鍵。雖然dict是正確的字典,但Swift假定它將具有多個密鑰。所以,如果你想遍歷它們(即使只有一個存在),你必須改用dict.keys

如果你只是想刪除deletedAge鍵值每個字典leagueList陣列中,一個簡單的方法來做到這一點是:

var leagueList = [Dictionary<String, Array<String>>]() 

for var dict in leagueList { 
    dict.removeValue(forKey: deletedAge!) 
} 
+0

非常感謝!我一直堅持這一段時間,很有趣的是,我只是一直在過度關注它。 – Branson

0

它看起來像你試圖通過你的字典數組搜索並從每個字典中刪除一個特定的鍵。要做到這一點,你需要使用二維循環:

for var dict in leagueList { 
    for key in dict.keys { 
     if key == "someKey" { 
      dict.removeValue(forKey: key) 
     } 
    } 
} 
相關問題