gpt4 book ai didi

arrays - 尝试将值附加到字典中的数组

转载 作者:行者123 更新时间:2023-11-28 06:24:54 26 4
gpt4 key购买 nike

我正在尝试将元素添加到字典中定义的数组,如下所示:

var eventsByQuarter = Dictionary<Int, [D_MatchEvents]>()

字典包含体育比赛中事件的详细信息,其中键是相关比赛的季度。即,第 1 季度的每个事件都在分配给该字典项的数组中(稍后我将使用该字典作为具有 4 个部分的 TableView 的数据源)。

D_MatchEventsCore Data 定义,与 MatchData 实体具有多对一关系。每个事件的“季度”已被捕获为 MatchEvents 实体中的属性之一。

func loadMatchEvents() {
match = DatabaseController.fetchMatch(matchUUID)!
matchEvents = match?.r_ToEvents?.allObjects as! [D_MatchEvents]
matchEvents = matchEvents.sorted() {($0.d_EventTimestamp?.compare($1.d_EventTimestamp as! Date) == .orderedAscending)}

for event in matchEvents {
eventsByQuarter[event.d_EventQuarter] = eventsByQuarter.append(event)
}
}

matchEvents 已正确加载为 D_MatchEvents 类型的排序数组,但是当我尝试遍历数组时,将每个事件附加到正确的“四分之一”数组中字典 我在尝试引用成员“下标”时遇到不明确的错误。

我看不出如何实现这一目标。任何帮助将不胜感激。

最佳答案

鉴于你的字典的结构,问题就在这里:

for event in matchEvents {
eventsByQuarter[event.d_EventQuarter] = eventsByQuarter.append(event)
}

应该是:

for event in matchEvents {
eventsByQuarter[event.d_EventQuarter]?.append(event)
}

虽然您确实需要检查是否存在给定键的现有数组,但我会做这样的事情:

for event in matchEvents {
//Create a variable that is either a mutable copy of the existing array, or a new, empty array of the correct type
var thisQuarter = eventsByQuarter[event.d_eventQuarter] ?? [D_MatchEvents]()
//Add the new item
thisQuarter.append(event)
//Replace the existing array with the appended copy, or add a new key-value pair (if it didn't already exist)
eventsByQuarter[event.d_eventQuarter] = thisQuarter
}

效率不高,但实现起来很快

关于arrays - 尝试将值附加到字典中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42235889/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com