ios - 如何快速交换 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": "+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"
    }

现在我想根据从谷歌矩阵 API 获得的距离数据交换这些元素。例如,如果我想将此数组的第二个索引元素与其第一个索引元素交换,我应该怎么做?

我试过使用,

swap(&GetVehicleData[1], & GetVehicleData[2])

但它给我这个错误,

Cannot pass immutable value as inout arguments: subscript is get-only

最佳答案

(编辑:以下是我对问题的原始回答,从技术上讲它仍然是准确的,但请注意,除非您对 NSArray/NSMutableArray 有特殊需求,否则 vadian 的建议是使用 Swift 数组更好。)

您不能编辑 NSArray,请改用 NSMutableArray:

var GetVehicleData :NSMutableArray!

关于ios - 如何快速交换 NSArray 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43014028/

相关文章:

iphone - 将背景图片添加到 Outlet Collection

ios - 自己添加观察者

ios - 如何从 UIImagePickerController 获取用相机拍摄的图像名称

swift - 运算符使用不明确 '>'

Swift 2 - 在 if 语句上使用 break 的用例?

Swift 2.1 - NSDateFormatter 奇怪的错误

ios - Swift:在 SceneView 之上设置 View 不起作用

ios - Google Advance 原生广告显示问题

swift - 在实现类型时针对已弃用的 Swift 协议(protocol)方法发出警告

swift - 表 Controller 之间的事件指示器 View - swift 2