首页 > 解决方案 > 如何将值附加到字典内的字典(Swift 4)

问题描述

我正在尝试创建一个像这样的字典结构的消息缓存......

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

基本上就是[Conversation Id: [Message Id: Message]],Message也是一个值的字典。

每当我想将新消息对象添加到我正在调用的消息缓存中时

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

messageCache[convoId] = [messageKey:message]

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

messageCache[convoId]?[messageKey] = message

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

标签: swiftdictionarycaching

解决方案


也许这有帮助:

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 是字符串键和元组数组值的字典。


推荐阅读