swift2 尝试使用自定义对象对数组进行排序,返回“表达式类型不明确,没有更多上下文”

j7dteeu8  于 2022-11-06  发布在  Swift
关注(0)|答案(1)|浏览(157)

在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中使用自定义数据类型进行排序呢?

k3fezbri

k3fezbri1#

将其替换为var sorted = Array(people).sort() {($0 as Person).birthdate) < ($1 as Person).birthdate}。显然您需要指定类型。

相关问题