swift - NSArray 排序 Swift 错误 : could not find an overload for 'sort' that accepts the supplied arguments

标签 swift

我正在尝试学习 Swift 的基础知识,目前正在尝试创建随机数列表并对它们进行排序。

var myNSArray = [1,2,3,4]
sort(myNSArray,>) //this works  =  [4,3,2,1]

var myArray: NSMutableArray = []
for i in 0..20 {
    myArray.addObject(Int(rand())%100)
}

var myNew: NSArray = myArray.mutableCopy() as NSArray
var mySorted = sort(myNew,>) //This give an error

这是错误:

...error: could not find an overload for 'sort' that accepts the supplied arguments

编辑: 我能够使用 Array 重写此代码,如下所示:

var myArray: Int[] = []
for i in 0..20 {
    myArray.append(Int(rand())%100)
}
myArray = sort(myArray,>)

这更干净!

最佳答案

在第一个示例中,myNSArray 不是 NSArray:

var myNSArray = [1,2,3,4]
sort(myNSArray,>) //this works  =  [4,3,2,1]

enter image description here

但在这些例子中:

var myArray: NSMutableArray = []
for i in 0..20 {
    myArray.addObject(Int(rand())%100)
}

var myNew: NSArray = myArray.mutableCopy() as NSArray
var mySorted = sort(myNew,>) //This give an error

它明确是一个 NSArray 和一个 NSMutableArray 。这些类没有声明 sort()

关于swift - NSArray 排序 Swift 错误 : could not find an overload for 'sort' that accepts the supplied arguments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24025006/

相关文章:

ios - 在 UIWindow 上显示 UIAlertController

iOS 谷歌地图 : how to "keep hold" of a marker? Swift 4

swift - Swift中didSet和willSet是如何实现的

arrays - 如何确定数组中的所有对象是否在 Swift 中连接

ios - 在 Swift 2 中重新加载数据时,如何防止表格格式发生变化?

ios - UIButton 闪烁正常工作,但按钮操作不工作

ios - xcode 7 beta 在进行谷歌集成时显示链接器错误

ios - 检查 UIView 是否有属性

ios - 如何在 swift 3 的其他功能中使用服务器响应和数据

ios - 使用 Reactive Cocoa swift 验证文本字段