在Swift 2中,我在一个数组中有我想要排序的自定义对象。
下面是我的自定义数据类型:
class Person {
let birthdate: NSDate
// class has all of the necessary constructors
}
let people = [Person(date1), Person(date2), ...] // lots of these
// Now attempt to sort them
var sorted = Array(people).sort {$0 < $1}
以上将生成此错误:
Cannot invoke 'sorted' with an argument list of type '((_, _) -> _)'
但是,由于我想要排序的值是NSDate类型,所以我想要使用NSDate的compare
方法。
var sorted = Array(people).sorted {$0.birthday.compare($1.birthday) == .OrderedAscending}
将产生:
Type of expression is ambiguous without more context
那么,如何在Array中使用自定义数据类型进行排序呢?
1条答案
按热度按时间k3fezbri1#
将其替换为
var sorted = Array(people).sort() {($0 as Person).birthdate) < ($1 as Person).birthdate}
。显然您需要指定类型。