排序数组给我错误

时间:2015-08-31 02:02:35

标签: ios arrays swift sorting

我有array structs。在struct我有两个NSDate个对象:prop1prop2。我正在尝试从最新到最旧的日期/时间对prop1进行排序。我希望prop2也可以根据prop1进行排序。 (我也想反过来做。)

struct Item {
    let prop1 : NSDate
    let prop2 : NSDate
}

var myItem = [Item]()

myItem.insert(Item(prop1: myDateSecond, prop2: anotherDateSecond), atIndex: 0)
myItem.insert(Item(prop1: myDateThird, prop2: anotherDateThird), atIndex: 0)
myItem.insert(Item(prop1: myDateFirst, prop2: anotherDateFirst), atIndex: 0)

myItem.sort { $0.prop1 < $1.prop1 }

在最后一行代码中,我收到以下错误:

  

无法使用类型'((_,_) - &gt; _)'

的参数列表调用'sort'

我做错了什么,我该如何解决?

1 个答案:

答案 0 :(得分:1)

比较两个日期时,您必须使用NSDate方法compare

struct Item {
    let prop1 : NSDate
    let prop2 : NSDate
}

var myItem = [Item]()

myItem.insert(Item(prop1: myDateSecond, prop2: anotherDateSecond), atIndex: 0)
myItem.insert(Item(prop1: myDateThird, prop2: anotherDateThird), atIndex: 0)
myItem.insert(Item(prop1: myDateFirst, prop2: anotherDateFirst), atIndex: 0)

myItem.sort{$0.prop1.compare($1.prop1) == NSComparisonResult.OrderedAscending}