如何在 UITableViewCell 中查询 (String, Dictionary<String, String>)?
Posted
技术标签:
【中文标题】如何在 UITableViewCell 中查询 (String, Dictionary<String, String>)?【英文标题】:How to Query (String, Dictionary<String, String>) into UITableViewCell? 【发布时间】: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
【问题讨论】:
【参考方案1】:希望我能正确理解您的问题。看来您有一个字典字典,您首先将其转换为数组,然后下标以获取其中一个没有“外键”的内部字典?您应该能够仅使用内部字典值创建初始音频数组。像这样:
let audio = Array(self.sharedRec.audioDic.values)
【讨论】:
嘿史蒂夫!所以你是对的,这确实可以隔离内部字典值(请参阅我上面帖子中的更新)。现在我试图为每个Inner Dictionary
制作UITableViewCell
,但它似乎不起作用.. 有什么想法吗?
'audio' -> 数组以上是关于如何在 UITableViewCell 中查询 (String, Dictionary<String, String>)?的主要内容,如果未能解决你的问题,请参考以下文章
Xcode UI 测试:UITableViewCell 上的辅助功能查询失败
如何在 UITableViewCell 中标记 UIImage
如何在 heightForRowAtIndexPath 中获取 UITableViewCell?