【发布时间】:2016-05-04 19:43:03
【问题描述】:
所以我有一个变量,其数据结构是 (String, Dictionary)
let audio = Array(self.sharedRec.audioDic) // Dictionary<String, Dictionary<String, String>>
let audioSet = audio[1] // (String, Dictionary<String, String>)
所以我的问题是我无法将Dictionary<String, String>(来自let audioSet = audio[1])放入另一个变量。
这是print(audioSet) 显示的内容:
("hSmfumVmjkmg9bOYxV67", ["audioString": "/hSmfumVmjkmg9bOYxV67", "audioURL": "/Users/xx/Library/Developer/CoreSimulator/Devices/67D6480B-566D-425B-88AD-E5DECC080337/data/Containers/Data/Application/7091A4BF-9E5F-4957-A3D8-ACE1D160826D/Documents/hSmfumVmjkmg9bOYxV67", "projectTitle": "Gold King", "audioTitle": "Dog"])
所以我不需要“hSmfumVmjkmg9bOYxV67”字符串,而只需要将它附带的字典放入一个新变量中(这样我就可以在我的UITableViewCell 中遍历它)
像这样:
let cell.audioTitle = audioPiece.audioTitle
let cell.audioURL = audioPiece.audioURL
谢谢!
更新
感谢史蒂夫的惊人回答,我正要删除不需要的键,只将字典放入变量中。
let audio = Array(self.sharedRec.audioDic.values)
self.sharedRec.audioDic = audio
print("Inner Dicitonary Values \(audio)")
// This is what gets printed from above
[["audioString": "/iFDNtXmmvC3lbKPkk2YY", "audioURL": "/Users/xx/Library/Developer/CoreSimulator/Devices/67D6480B-566D-425B-88AD-E5DECC080337/data/Containers/Data/Application/834019D6-5223-47AE-A51E-FFA49FFB14F5/Documents/iFDNtXmmvC3lbKPkk2YY", "projectTitle": "Kash - Oh", "audioTitle": "GOAT"], ["audioString": "/tyddrt0PrrwebN5RBNy2", "audioURL": "/Users/xx/Library/Developer/CoreSimulator/Devices/67D6480B-566D-425B-88AD-E5DECC080337/data/Containers/Data/Application/834019D6-5223-47AE-A51E-FFA49FFB14F5/Documents/tyddrt0PrrwebN5RBNy2", "projectTitle": "Kash - Oh", "audioTitle": "Gold"]]
所以我现在的问题是我如何遍历这两个或(当有更多字典时更多稍后的一个)并为我的UITableViewCell 获取它们的数据?
我试过了 - cell.vocalString.text = audio[0]["audioTitle"] 但它说的是 Index out of Range
【问题讨论】:
标签: arrays swift uitableview dictionary