Ios 如何在swift中交换NSArray元素

Ios 如何在swift中交换NSArray元素,ios,swift,swift2,nsarray,Ios,Swift,Swift2,Nsarray,我有一个NSArray声明为 var GetVehicleData :NSArray! 这是我存储在数组中的Json数据 { "vehicle": "1", "plate_no": "1111111111", "vehicle_id": 1, "pro_pic": "1490258953381.jpg", "fname": "Test", "lname": "User 01", "phone": "+94761

我有一个NSArray声明为

var GetVehicleData :NSArray!
这是我存储在数组中的Json数据

{
      "vehicle": "1",
      "plate_no": "1111111111",
      "vehicle_id": 1,
      "pro_pic": "1490258953381.jpg",
      "fname": "Test",
      "lname": "User 01",
      "phone": "+9476112282334",
      "passenger_no": 4,
      "model": "honda",
      "colour": "red",
      "driver_id": "3",
      "lat": "6.8964",
      "lng": "79.8885"
    },
    {
      "vehicle": "2",
      "plate_no": "CAQ-1234",
      "vehicle_id": 2,
      "pro_pic": "1490258754529.jpg",
      "fname": "Test",
      "lname": "User 2",
      "phone": "+9477789424897",
      "passenger_no": 4,
      "model": "Honda",
      "colour": "Black",
      "driver_id": "4",
      "lat": "6.8876886",
      "lng": "79.8628148"
    },
    {
      "vehicle": "3",
      "plate_no": "FGH-1234",
      "vehicle_id": 3,
      "pro_pic": "1490258812119.jpg",
      "fname": "Test ",
      "lname": "User 3",
      "phone": "+9476533142335",
      "passenger_no": 1,
      "model": "TVS",
      "colour": "red",
      "driver_id": "6",
      "lat": "6.8876901",
      "lng": "79.8628141"
    }
现在我想根据我从google matrix API获得的距离数据交换这些元素。例如,如果我想将这个数组的第二个索引元素与其第一个索引元素交换,我应该怎么做

我试过用

swap(&GetVehicleData[1], & GetVehicleData[2])
但它给了我这个错误

Cannot pass immutable value as inout arguments: subscript is get-only
(编辑:以下是我对该问题的原始答案,在技术上仍然准确,但请注意,瓦迪安建议使用Swift数组更好,除非您特别需要NSArray/NSMutableArray。)

无法编辑NSArray,请改用NSMutableArray:

var GetVehicleData :NSMutableArray!
(编辑:以下是我对该问题的原始答案,在技术上仍然准确,但请注意,瓦迪安建议使用Swift数组更好,除非您特别需要NSArray/NSMutableArray。)

无法编辑NSArray,请改用NSMutableArray:

var GetVehicleData :NSMutableArray!

使用Swift数组,因为
var
您可以免费获得可变性:

var GetVehicleData : [[String:Any]]!

使用Swift数组,因为
var
您可以免费获得可变性:

var GetVehicleData : [[String:Any]]!

Thanx这很有帮助!必须了解这些数组之间的差异。@Bishan,感谢您接受的答案-但是对于一般用途,我认为vadian的答案(使用Swift数组)更好(除非您有非常特殊的需要使用NSArray/NSMutableArray),您可能希望将您的勾号移到他那里。我也将按照这些思路编辑我的答案。Thanx这非常有用!必须了解这些数组之间的差异。@Bishan,感谢您接受的答案-但是对于一般用途,我认为vadian的答案(使用Swift数组)更好(除非您有非常特殊的需要使用NSArray/NSMutableArray),您可能希望将您的勾号移到他那里。我也将按照这些思路编辑我的答案。