Sort an array of dictionaries in Swift Sort an array of dictionaries in Swift swift swift

Sort an array of dictionaries in Swift


The error message is misleading. The real problem is that the Swift compiler doesnot know what type of object $0["lastModified"] is and how to compare them.

So you have to be a bit more explicit, for example

filesAndProperties.sort {    item1, item2 in    let date1 = item1["lastModified"] as Double    let date2 = item2["lastModified"] as Double    return date1 > date2}

if the timestamps are floating point numbers, or

filesAndProperties.sort {    item1, item2 in    let date1 = item1["lastModified"] as NSDate    let date2 = item2["lastModified"] as NSDate    return date1.compare(date2) == NSComparisonResult.OrderedDescending}

if the timestamps are NSDate objects.


Here, The problem is that compiler unable to understand type that what of object $0["lastModified"] is.

if the timestamps are floating point numbers:-

filesAndProperties = filesAndProperties.sorted(by: {                (($0 as! Dictionary<String, AnyObject>)["lastModified"] as? Double)! < (($1 as! Dictionary<String, AnyObject>)["lastModified"] as? Double)!            })