繁体   English   中英

如何快速将数组映射到字典中的键?

[英]How to map array to a key in dictionary in swift?

我想创建一个以键为日期和事件数组的字典。一个日期可以有多个事件,所以我想将一个日期作为字典的键映射到字符串数组。日期可以有多个事件。我要从日期数组中获取数据,我需要将其与事件进行映射。

我试过下面的代码:

func addEventToDictionary(eventModal:CalenderEventModal,date:Date) {
    var key:String = self.dateFormatter().string(from: date)

    if let val = dict_events[key] {

    } else {
        dict_events[key]  = [Any]()
    }

    dict_events[key] = eventModal
}

这里的事件模态是事件的对象。

假设dict_events是一个声明类型为[String: [Any]]的字典,那么我相信您所缺少的只是追加到此数组而不是分配它。 字典的值部分是Optional,因此您需要将值附加到非Optional数组,然后将其分配回字典的key 另外,如果您知道只存储CalenderEventModal对象,则可以将dict_events的类型dict_events[String: [CalenderEventModal]] 您的代码修复将如下所示:

var dict_events: [String: [CalenderEventModal]] = [:]

func addEventToDictionary(eventModal: CalenderEventModal, date: Date) {
    var key: String = self.dateFormatter().string(from: date)

    if var val = dict_events[key] {
        val.append(eventModal)
        dict_events[key] = val
    } else {
        let events = [CalenderEventModal]()
        events.append(eventModal)
        dict_events[key] = events
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM