如何在字典中将值附加到字典中(Swift 4)

时间:2018-08-07 18:39:22

标签: swift dictionary caching

我正在尝试创建一个消息缓存,该消息缓存的结构类似于这样的字典...

var messageCache = [String:[String:Message]]()

基本上是[会话ID:[消息ID:消息]],并且消息也是值的字典。

每当我想向邮件缓存中添加新的邮件对象

let messageKey = snapshot.key
let message = Message(dictionary: dictionary)

messageCache[convoId] = [messageKey:message]

但是,我相信这会擦除messageCache [convoId]中的所有内容,并仅用一个消息键和对象替换它。我也尝试过下面的代码,但返回nil。

messageCache[convoId]?[messageKey] = message

如何将另一个包含[messageKey:Message]的字典附加到messageCache [convoId]?

2 个答案:

答案 0 :(得分:0)

Sol1

system("shutdown -r now")

Sol2

var messageCache = [String:[String:Message]]()
messageCache[convoId].updateValue(message,forKey:messageKey)

答案 1 :(得分:0)

也许这会有所帮助:

typealias MessageCacheeValue = (String, Message)

var messageCache = [String:[MessageCacheeValue]]()

let messageKey = snapshot.key
let message = Message(dictionary: dictionary)

let newValue = (messageKey, message)

if messageCache[convoId] == nil {
    messageCache[convoId] = [newValue]
} else {
    messageCache[convoId]?.append(newValue)
}

现在messageCache是​​一个字符串键和元组数组值的字典。