这是我使用数组创建词典的方式:
@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作为学习经历的所有项目。
想知道使用带字典的词典是否更好,例如[&#34; fromTime&#34;:value,&#34; toTime&#34;:value,&#34; cost&#34;:value]
感谢任何给予的帮助。
感谢您的时间。
答案 0 :(得分:1)
问题来自于在dayLabel.text
上使用字符串插值 - 因为这是String?
而不是String
,您最终将“可选(星期三)”作为您的密钥而不是只是“星期三”。你需要打开它,如下所示:
@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时间字段类似的操作来获取所需的值。
答案 1 :(得分:0)
我的回答:
@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)")
}
我不得不将dayLabel.text更改为dayLabel.text!
那些惊叹号真让我感到困惑。起初我以为它们就像指针,因为它们不能用于Int,Float等(所以我认为)。
但事实上我在dayLabel.text结束时需要一个而不是我的其他标签让我更加困惑。我想及时我会有我的啊哈哈。我确实在这里读了几篇文章,但仍然没有得到它。