我想知道如何在 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/