这就是我用数组创建字典的方式:

@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/

10-10 20:48
查看更多