ios - 如何在 Swift 的 NSMutableDictionary 中为键的特定索引附加一个值的数组

标签 ios arrays swift dictionary

我想知道如何在 Swift 的 NSMutableDictionary 中为键的特定索引附加一个值的数组?

我有一个字典如下:

let xyz: NSMutableDictionary = ["1":[1,2,3,4,"1","n"],"2":[1,2,3,4,"+","o","6","2"]]

我想在索引 6 处向键“1”添加值 1,即它应该如下所示:

let xyz: NSMutableDictionary = ["1":[1,2,3,4,"1","n",1],"2":[1,2,3,4,"+","o","6","2"]]

怎么做?

最佳答案

如果您选择方法(对于给定的键,在您的示例中 "1")

  • 提取值数组的可变副本,
  • 改变这个副本,
  • 覆盖给定键的原始数组(值),

您需要告诉(在这种情况下,尝试转换)Swift 值数组是 一个数组 AnyObject 类型的实例(即 [AnyObject]),否则,默认情况下, key 将被提取为单个 AnyObject。只有前者 Swift 会意识到我们可以追加元素(到数组),而对于后者,Swift 不允许我们将元素追加到单个 AnyObject 值(即使它包装了一个数组)。

例如

let xyz: NSMutableDictionary = ["1":[1,2,3,4,"1","n"],"2":[1,2,3,4,"+","o","6","2"]]

let appendValue = "1"
let forKey = "1"
if var arr = xyz[forKey] as? [AnyObject] {
    arr.append(appendValue)
    xyz[forKey] = arr
}

导致

print(xyz)

{
    1 =     (
        1,
        2,
        3,
        4,
        1,
        n,
        1
    );
    2 =     (
        1,
        2,
        3,
        4,
        "+",
        o,
        6,
        2
    );
}

关于ios - 如何在 Swift 的 NSMutableDictionary 中为键的特定索引附加一个值的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36591698/

相关文章:

json - 从url解析json到swift 2.0

ios - sqlite 加入查询 iPad

ios - 以编程方式使用 UIButton 滚动到项目 UICollectionView

ios - 在状态栏下方获取自动布局

javascript - 如何使用其他数组从数组中按键/值提取对象

c++ - C++中如何删除struct数组中的元素

swift - UIWebview 崩溃,错误为 :EXC_BREAKPOINT (CODE=EXC_I386_BPT, SUBCODE = 0X0)

iphone - 是否有一种声明性方法可以在 IOS 中的方向更改时将背景图像从纵向版本更改为横向版本?

ios - 每帧多个视觉请求

arrays - 不浪费条目或使用计数器的循环队列