更新 NSarray 中特定键的值

Update Value of Particular Key Inside NSarray

我正在使用 NSArray

    array =  [
  {
    "name": "Kavin",
    "Age": 25,
    "is_married": "true"
  },
  {
    "name": "Kumar",
    "Age": 25,
    "is_married": "false"
  }
]

在此需要将update/change数组[0]"is_married"设为false。这意味着我需要将 Kavin 的已婚状态更新为 false。怎么可能。

您不能更新 NSArray 中的值,它是不可变的。 但是你可以这样做。

在Objective C

NSArray *array = // your array

NSMutableArray *arrayM = [array mutableCopy];

NSMutableDictionary *dic = (NSMutableDictionary*)arrayM.firstObject;
[dic setObject:@"false" forKey:@"is_married"];

[arrayM replaceObjectAtIndex:0 withObject:dic];

array = arrayM;

此处获取更新数组对象。

在Swift

数组必须用 var 声明,不允许。

var array =  [
        [
            "name" : "Kavin",
            "Age": 25,
            "is_married": "true"
        ],
        [
            "name" : "Kumar",
            "Age" : 25,
            "is_married": "false"
        ]]

    array[0].updateValue("false", forKey: "is_married")

此处获取更新数组对象

终于得到一些完美的代码:

let DuplicateArray: NSArray = array
let DuplicateMutableArray: NSMutableArray = []
DuplicateMutableArray.addObjectsFromArray(DuplicateArray as [AnyObject])
var dic = (DuplicateMutableArray[0] as! [NSObject : AnyObject])
dic["is_married"] = "false"
DuplicateMutableArray[self.SelectedIndexPath] = dic
array = []
array = (DuplicateMutableArray.copy() as? NSArray)!

输出如下:

array =  [
  {
    "name": "Kavin",
    "Age": 25,
    "is_married": "false"
  },
  {
    "name": "Kumar",
    "Age": 25,
    "is_married": "false"
  }
]