Swift 语言 : How do I implement a dictionary of array values, 并将新值分配(即追加)到数组?

标签 swift

语言:Swift

我声明了一个值为数组的字典,如下所示:

var unloadedImagesRows = [String:[Int]]()

private func addToUnloadedImagesRow(row: Int, forLocation:String!) {
    print("addToUnloadedImagesRow 0: row: \(row)")
    var unloadedRows = imagesRowForLocation(forLocation)
    unloadedRows!.append(row)
}

private func imagesRowForLocation(location:String!) -> [Int]! {
    var unloadedRows = unloadedImagesRows[location];
    if unloadedRows == nil {
        unloadedRows = [Int]()
        unloadedImagesRows[location] = unloadedRows
    }
    return unloadedRows
} 

private func someMethod() {
    addToUnloadedImagesRow(rowIndex, forLocation: event.iconImg)
    ...
}

“unloadedRows!.append(row)”有效,我在调试器中看到计数增加到 1。

但是,下次我检索“var unloadedRows = unloadedImagesRows[location]”行中的值时,我得到一个包含 0 个值的数组的结果。

如何实现数组值的字典,并将新值分配(即追加)到数组?

最佳答案

var unloadedRows = imagesRowForLocation(forLocation)
unloadedRows!.append(row)
unloadedImagesRows[forLocation] = unloadedRows!

您按值检索数组,即创建存储在字典中的数组的另一个实例。因此,您应该在附加值后将其重新设置到字典中

关于Swift 语言 : How do I implement a dictionary of array values, 并将新值分配(即追加)到数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36563652/

相关文章:

ios - 尝试在 UIView 中为 SKNode 设置动画

ios - 使 TableView 根据 PickerView 中的当前选择显示值?

ios - 无法构建 Objective-C 模块 'cocoaMQTT'

ios - 将数据传递给自定义 View 然后执行函数是一种好方法吗?

Swift 组合链接 .mapError()

ios - Swift:以动态方式垂直对齐父 View 中心的 subview ?使用人工计算?最好使用 SKSpriteNodes?

swift - 字符串类型的枚举与具有静态常量的结构

ios - XCTestCase 失败后停止

ios - NSLocalizedString() Swift 只适用于指定的语言

ios - 从 Swift 3 中的自定义 UITableViewCell 检测 UIButton