2017-03-06 83 views
-1

我想根据两个键(分区号&行)对JSON进行排序,并尝试通过一个错误提到的代码示例。如何对核心数据对象中的字典数组进行排序?

{ 
    "response": { 
     "flightLegId": "FL004", 
     "loadable": [{ 
      "position": { 
       "deckNumber": 1, 
       "compartmentNumber": 1, 
       "leftRight": "ALL", 
       "row": 1 
      }, 
      "uld": { 
       "uldAirline": "KL", 
       "uldNumber": "ULD007", 
       "uldPrefix": "PAG", 
       "commodity": [{ 
        "commodityCode": "C", 
        "airportCode": "GLA", 
        "hasDangerousGoods": false, 
        "pieceCount": 0, 
        "weightKg": 710 
       }] 
      } 
     }, { 
      "position": { 
       "deckNumber": 1, 
       "compartmentNumber": 1, 
       "leftRight": "ALL", 
       "row": 2 
      }, 
      "uld": { 
       "uldAirline": "KL", 
       "uldNumber": "ULD007", 
       "uldPrefix": "PAP", 
       "commodity": [{ 
        "commodityCode": "C", 
        "airportCode": "GLA", 
        "hasDangerousGoods": false, 
        "pieceCount": 5, 
        "weightKg": 780 
       }, { 
        "commodityCode": "M", 
        "airportCode": "GLA", 
        "hasDangerousGoods": false, 
        "pieceCount": 5, 
        "weightKg": 780 
       }] 
      } 
     }] 
    } 
} 

func sortResults(items: [Loadable]) -> [Loadable] { 
      var sortResults: [Loadable] = [] 
      if let sortedArray = (items as NSArray).sortedArray(using: [ 
       NSSortDescriptor(key: "compartmentNumber", ascending: true), 
       NSSortDescriptor(key: "row", ascending: true), 
       ]) as? [Loadable] { 
       sortResults = sortedArray 
      } 
      return sortResults 
     } 
+0

你什么错误?你从哪里得到它? – Hamish

+0

以下是错误信息 ***由于未捕获异常'NSUnknownKeyException',原因:'[ valueForUndefinedKey:]'终止应用程序:实体Loadable不是密钥值编码兼容密钥“compartmentNumber”。 –

回答

0

使用此功能

func sortResults(items: [Loadable]) -> [Loadable] { 
     var sortResults: [Loadable] = [] 
     if let sortedArray = (items as NSArray).sortedArray(using: [ 
      NSSortDescriptor(key: "position.compartmentNumber", ascending: true), 
      NSSortDescriptor(key: "position.row", ascending: true), 
      ]) as? [Loadable] { 
      sortResults = sortedArray 
     } 
     return sortResults 
    } 
相关问题