ios - 使用 Swift 4 及更高版本对十六进制数进行排序

标签 ios iphone swift4.2 swift5 xcode11

我有像

这样的字符串
[
 "71ADDC23D2048",
 "9BF4F631EBA69",
 "B123454F4F631EBA69",
 "123454F4F6345FGT"
]

我当前的排序代码是:

// Sorting the Tans
func sortByTagID(arrayTags:[TansIDS],orderBy:String) -> [TansIDS] {

    if orderBy.uppercased() == OrderBy.Ascending {
        let sortedArray = arrayTags.sorted {String($0.trans-id!).localizedStandardCompare(String($1.trans-id!)) == .orderedAscending}
        return sortedArray
    }
    else {
        let sortedArray = arrayTags.sorted {String($0.trans-id!).localizedStandardCompare(String($1.trans-id!)) == .orderedDescending}
        return sortedArray
    }

}

请告诉我是否有比这更好的排序方法?因为当我与其他平台(Android)进行比较时,它不一样。

最佳答案

试试这个

func sortByTagID(arrayTags:[TansIDS],orderBy:String) -> [TansIDS] {

    if orderBy.uppercased() == OrderBy.Ascending {
        let sortedArray = arrayTags.sorted {String($0.trans-id!) < String($1.trans-id!)}
        return sortedArray
    }
    else {
        let sortedArray = arrayTags.sorted {String($0.trans-id!) > String($1.trans-id!)}
        return sortedArray
    }
}

输出升序:

[
 "123454F4F6345FGT",
 "71ADDC23D2048",
 "9BF4F631EBA69",
 "B123454F4F631EBA69"
] 

输出降序:

[
 "B123454F4F631EBA69",
 "9BF4F631EBA69",
 "71ADDC23D2048",
 "123454F4F6345FGT"
]

关于ios - 使用 Swift 4 及更高版本对十六进制数进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58967338/

相关文章:

iphone - 理解 Objective C 中的委托(delegate)模式和回调函数的问题

php - 上传 PHP 后修复 iOS 图片方向

swift - 在 performBackgroundTask 闭包中抛出异常

ios - Xcode 10 无法存档项目

ios - 将 IBOutlet 变量传递给另一个类

objective-c - GL_TRIANGLE_STRIP 和顶点数组出错

c# - 单点触控的 iOS map

iphone - 在突出显示时更改 UITableView cell.detailTextLabel 颜色

jquery - 为什么我的 Mobile Safari 缓存无法清除?

ios - 如何修复 "Overlapping accesses to ' self',但修改需要独占访问;考虑在我的代码中复制到局部变量“错误?