我想要这段代码的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值。
更新斯威夫特2: sorted和sort由被替换sort和sortInPlace
sorted
sort
sortInPlace