Это, как я создал свой словарь с массивом:Как получить доступ к массиву, хранящемуся в словаре в Swift?
@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)")
}
Это возвращает ноль, который для меня не имеет смысла. Среда - это сохраненный ключ, поэтому я бы подумал, что этого будет достаточно, чтобы вернуть массив.
То, что я пытаюсь сделать:
В основном у меня есть таблица с 7 разделов и каждый представляет день. В каждый день я храню временные интервалы со стоимостью для бронирования активности в этом слоте.
Когда я использую numberOfRowsInSection, я смогу использовать ключ словаря, чтобы получить количество строк (временных интервалов) для определенного дня, который будет отображаться в таблицеView. Это был самый простой способ сделать это с помощью NOSql.
Я храню словари в столбце на parse.com и получаю доступ к этому словарю в своем табличном представлении.
В любом случае я не понимаю, почему я не могу получить доступ к массиву с помощью ключа. Я мог легко пойти и использовать NSMutableDictionary, но я использую Swift для всех моих проектов в качестве учебного опыта.
Удивление, если было бы лучше использовать словарь со словарями, например. ["fromTime": значение, "toTime": значение, "стоимость": значение]
Поблагодарите за предоставленную помощь.
Спасибо за ваше время.
Трудно сказать, не видя полного класса, но похоже, что вы заполняете словарь 'hooObject' внутри вашего обработчика событий. Если это так, оно исчезнет в конце этого метода, поэтому доступ к данным позже будет невозможным. Вы хотите, чтобы это было свойством экземпляра вашего класса. –
Yep просто вручную ввел строки в словаре вместо того, чтобы захватывать текст с метки и текстового поля, а когда я вызываю hooObject ["Среда"], он показывает мне массив. Попробуй свое предложение. – LondonGuy
@NateCook Я сделал hooObject экземпляром var, но без разницы. Текст в тексте ярлыка и тексте поля по-прежнему сохраняется после нажатия кнопки «Сохранить», и я не увольняю представление или что-то еще, поэтому я мог бы получить к ним доступ. Не имеет смысла для меня. Я думаю, что неправильно понял, что вы сказали, может быть. – LondonGuy