gpt4 book ai didi

arrays - Swift 4 排序有错误的元组

转载 作者:行者123 更新时间:2023-11-28 15:18:50 24 4
gpt4 key购买 nike

我已经在 Swift 3 上工作了很长时间,以便能够按如下方式对元组进行排序

let count = self.array1.count
let sortedTuples = (0..<count).map {(self.array2[$0], self.array3[$0], self.array1[$0], self.array4[$0], self.array5[$0], self.array6[$0], self.array7[$0], self.array8[$0])}.sorted { $0.0 > $1.0 }
self.array2 = sortedTuples.map { $0.0 }
self.array3 = sortedTuples.map { $0.1 }
self.array1 = sortedTuples.map { $0.2 }
self.array4 = sortedTuples.map { $0.3 }
self.array5 = sortedTuples.map { $0.4 }
self.array6 = sortedTuples.map { $0.5 }
self.array7 = sortedTuples.map { $0.6 }
self.array8 = sortedTuples.map { $0.7 }

注意所有数组都是 String,除了 array7UIColor

现在,当我迁移到 Swift 4 时,出现以下错误;

Expression was too complex to be solved in reasonable time; consider breaking up the expression into distinct sub-expressions

如何将这么长的代码拆分成更多行以满足 Xcode 9 的要求?

最佳答案

如果我没理解错的话,您想要对 array2 进行排序,并让其他数组以相同的方式配对。无需创建 monster 元组,您只需将 array2 与其索引配对(这就是 enumerated() 所做的)然后使用排序索引以重新映射其他数组:

let sortedTuples = array2.enumerated().sorted { $0.1 > $1.1 }
let indices = sortedTuples.map { $0.0 }
self.array2 = indices.map { array2[$0] }
self.array3 = indices.map { array3[$0] }
self.array1 = indices.map { array1[$0] }
self.array4 = indices.map { array4[$0] }
self.array5 = indices.map { array5[$0] }
self.array6 = indices.map { array6[$0] }
self.array7 = indices.map { array7[$0] }
self.array8 = indices.map { array8[$0] }

关于arrays - Swift 4 排序有错误的元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46383234/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com