我想要的Swift版本的这段代码:
NSArray *sortedNames = [names sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
var names = [ "Alpha","alpha","bravo"] var sortedNames = names.sorted { $0.localizedCaseInsensitiveCompare($1) == NSComparisonResult.OrderedAscending }
更新:根据其他SO用户的建议提供解释。
与ObjC不同,在Swift中,你有sorted()(和sort())方法,它接受一个你提供的闭包,返回一个布尔值,以指示一个元素应该在另一个元素之前(true)还是之后(false)。 $ 0和$ 1是要比较的元素。我使用localizedCaseInsensitiveCompare来获得您要查找的结果。现在,localizedCaseInsensitiveCompare返回排序的类型,所以我需要修改它以返回适当的bool值。
Swift 2的更新:排序和排序由sort和sortInPlace替换