Clasificación de matriz de dictionary con date Swift 3

Tengo una matriz llamada myArray en la que se agregan dictionarys. Quiero que el dictionary se clasifique por time, que es una key en el dictionary. Y ese momento está en String. El formatting de date de la hora es "yyyy / MM / dd HH: mm: ss"

Intenté con la solución de código a continuación, pero da una advertencia de "Cast from 'String?' a un tipo no vinculado 'Fecha' siempre falla ".

let sortedArray = self.myArray.sorted{ ($0["Time"] as? Date)! > ($1["Time"] as? Date)! } print(sortedArray) 

Si alguien me puede ayudar, gracias.

No necesita convertir al time de date para este tipo. El formatting internacional (yyyy / MM / dd HH: mm: ss) que está utilizando proporciona el order de sorting correcto como una cadena.

Tienes que convertir una cadena en una date usando este código:

  let dateFormatter = DateFormatter() dateFormatter.dateFormat = "yyyy/MM/dd HH:mm:ss" let date = dateFormatter.date(from: "2017/04/22 00:00:00") ?? Date() 

Entonces, usa esto:

 let dateFormatter = DateFormatter() dateFormatter.dateFormat = "yyyy/MM/dd HH:mm:ss" let sortedArray = self.myArray.sorted{[dateFormatter] one, two in return dateFormatter.date(from:one["Time"] )! > dateFormatter.date(from: two["Time"] )! } 

código simple para orderar una matriz de dictionary con date

 let formatter = NSDateFormatter() formatter.dateFormat = "MMM d, yyyy hh:mm a" formatter.locale = NSLocale(localeIdentifier: "en_US") let sorted = displayArray.sort { formatter.dateFromString($0["fullfireDate"] as! String)?.compare(formatter.dateFromString($1["fullfireDate"] as! String)!) != .OrdenetworkingAscending }