【发布时间】:2014-09-16 23:09:24
【问题描述】:
这就是我使用数组创建字典的方式:
@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":value, "toTime":value, "cost":value]
将不胜感激任何帮助。
感谢您的宝贵时间。
【问题讨论】:
-
很难说没有看到完整的课程,但看起来您正在事件处理程序中填充
hooObject字典。如果是这样,它将在该方法结束时消失,因此以后无法访问数据。您希望它成为您的类的实例属性。 -
是的,只是在字典中手动输入字符串,而不是从标签和文本字段中获取文本,当我调用 hooObject["Wednesday"] 时,它会显示数组。将尝试您的建议。
-
@NateCook 我将 hooObject 设为实例变量,但没有区别。在我点击保存后,标签文本和字段文本中的文本仍然存在,并且我没有关闭视图或任何其他内容,因此我认为我可以访问它们。对我来说毫无意义。我想我误解了你所说的可能发生的事情。
-
这一行: var res = hooObject["Wednesday"] NSLog("RESULT: (res)") 实际上是在上面的方法中调用的,因此这些值应该仍然可以访问。我已经编辑了我的问题。
-
@NateCook 我又试了一次,但这次用“星期三”替换“(dayLabel.text)”并且它有效。因此,“(dayLabel.text)”和“星期三”存储在其中的字符串与“星期三”不同。嗯
标签: ios cocoa-touch swift swift-dictionary swift-array