这就是我用数组创建字典的方式:
@IBAction func didTapSaveButton(sender: UIButton) {
var hooObject = Dictionary<String, [String]>()
hooObject["\(dayLabel.text)"] = ["\(fromTimeLabel.text) - \(toTimeLabel.text)", "\(costField.text)"]
NSLog("RESULT: \(hooObject)")
}
NSLog结果:
RESULT: [Optional("Wednesday"): [Optional("9:00 PM") - Optional("3:00 PM"), 40.00]]
我已经试过了:
@IBAction func didTapSaveButton(sender: UIButton) {
var hooObject = Dictionary<String, [String]>()
hooObject["\(dayLabel.text)"] = ["\(fromTimeLabel.text) - \(toTimeLabel.text)", "\(costField.text)"]
var res = hooObject["Wednesday"]
NSLog("RESULT: \(res)")
}
这将返回nil,这对我来说没有意义。周三是存储的密钥,因此我认为返回数组就足够了。
我正在尝试做的是:
基本上,我有一个包含7个部分的表格,每个部分代表一天。在每一天中,我都会存储一些时间段,其中包含在该时间段中预订活动的费用。
当我使用numberOfRowsInSection时,我将能够使用Dictionary键获取特定日期的行数(时隙),该行数将在tableView中显示。这是我可以想到的使用NOSql的最简单方法。
我将字典存储在parse.com中的一列中,并在tableView中访问该字典。
无论如何,我不明白为什么我似乎无法使用键访问数组。我可以轻松地使用NSMutableDictionary,但是我将Swift用于我的所有项目作为学习经验。
想知道使用带有字典的字典是否更好,例如[“ fromTime”:值,“ toTime”:值,“ cost”:值]
将不胜感激。
谢谢你的时间。
最佳答案
问题来自在dayLabel.text
上使用字符串插值-因为这是String?
而不是String
,所以最终以“ Optional(Wednesday)”作为键,而不仅仅是“ Wednesday”。您需要像这样打开包装:
@IBAction func didTapSaveButton(sender: UIButton) {
var hooObject = Dictionary<String, [String]>()
if let day = dayLabel.text {
hooObject["\(day)"] = ["\(fromTimeLabel.text) - \(toTimeLabel.text)", "\(costField.text)"]
NSLog("RESULT: \(hooObject)")
}
}
您可能需要对from和to时间字段执行类似的操作才能获取所需的值。
关于ios - 如何在Swift中访问存储在Dictionary中的数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25879783/