在Objective-C我可以排序的NSArray使用此声明:
Objective-C
NSArray
NSArray *sortedArray = [persons sortedArrayUsingComparator:^NSComparisonResult(Person *p1, Person *p2) { return [p1.name compare:p2.name]; }];
我无法使用 Swift 重现相同的语句。我发现的只是使用Array。
Array
您可以使用Swift的内置排序函数,也可以使用Swift数组,因为Swift数组是桥接的,因此NSArray可以sortedArrayUsingComparator直接从swift 调用。
sortedArrayUsingComparator
使用Swift的sorted功能:
sorted
var sortedArray = sorted(persons) { (obj1, obj2) in // The downcast to Person is only needed if persons is an NSArray or a Swift Array of AnyObjects let p1 = obj1 as Person let p2 = obj2 as Person return p1.name < p2.name }
或者,使用NSArray的sortedArrayUsingComparator:
var sortedArray = persons.sortedArrayUsingComparator { (obj1, obj2) -> NSComparisonResult in let p1 = obj1 as Person let p2 = obj2 as Person let result = p1.name.compare(p2.name) return result }