我有两个字符串变量:var myName
和var friendsName
。它们都是字符串,我想按字母顺序对它们进行排序。当我将它们放入像var nameArray = [myName, friendsName]
这样的数组中然后尝试通过执行nameArray.sort()
对它进行排序 - 我收到一个错误,告诉我需要使用by谓词。
如果swift没有将它们视为具有可比性,我将如何按字母顺序排序这些字符串?
答案 0 :(得分:3)
因此,在Swift3中,您可以执行nameArray.sorted()
或nameArray.sort()
只需执行以下操作即可让它们具有可比性:nameArray = nameArray.sorted(by: { $0 > $1 })
或nameArray.sort(by: <)
。
示例:
.sorted
var nameArray = ["Tommy", "Anoop", "Jerry"]
nameArray = nameArray.sorted(by: { $1 > $0 })
print(nameArray)
的.sort
var nameArray = ["Tommy", "Anoop", "Jerry"]
nameArray.sort(by: <)
print(nameArray)
输出:["Anoop", "Jerry", "Tommy"]
答案 1 :(得分:1)
例如,如果其中一个字符串为nil,则会抛出此错误。您可能尝试以更清晰的方式捕获这一点的一件事是将nameArray声明为字符串数组。
var nameArray: [String] = [myname, friendsName]
如果其中一个字符串根本不是字符串,您将收到不同的错误。