- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我试图在 Swift 3.1.1 中对可变数组进行排序,但每次都出现相同的错误:没有“排序”候选者产生预期的上下文结果类型“NSMutableArray”。有没有办法按升序对可变数组(仅限 Ints)进行排序?
在我的代码中,选项中的元素被删除了。 Removed(数组)是添加被移除的元素。在代码的末尾,我尝试将已删除数组中的元素添加回选项并对其进行排序。
// set up tiles
var options = NSMutableArray()
var removed = NSMutableArray()
for i in 1...49 {
options.add(i as Int)
print("options\(options.count)")
}
for i in 1...49 {
print("i = \(i)")
options.remove(i)
let tilea: Int = options[Int(arc4random_uniform(UInt32(options.count)))] as! Int
options.remove(tilea)
let tileb: Int = options[Int(arc4random_uniform(UInt32(options.count)))] as! Int
options.remove(tileb)
removed.add([i, tilea, tileb])
print(options.count)
if options.count < 20 {
options.add(removed)
options = options.sort {
$0 < $1
}
}
}
最佳答案
如前所述,在 Swift 中你真的应该使用 Array<T>
为此(又名 [T]
)而不是 NSMutableArray
.例如:
var options = [Int]()
向其添加元素时,使用append
(顺便说一句,您也可以删除类型转换):
options.append(i)
options.append(contentsOf: [i, j, k])
最后,当排序数组时,使用sort
函数(它不返回值;数组就地排序):
options.sort()
而且您甚至不需要提供比较函数,因为整数符合 Comparable
协议(protocol)。
关于ios - Swift 3 - 没有 'sort' 候选人产生预期的上下文结果类型 'NSMutableArray',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43970901/
pimpl(也称为:编译器防火墙)惯用语用于缩短编译时间,但代价是可读性和一点运行时性能。目前一个项目需要很长时间才能编译,如何衡量最好的 pimpl 候选人? 我有使用 pimpl 的经验,可以将项
[下面用粗体表示的问题] 我在运行 OS Ubuntu 14.04 的防火墙后面的数据中心中设置了 Kurento Media Server 5.1.3。它有两个网卡: 222.222.222.222
我正在使用 Kurento Utils用于与 Kurento 媒体服务器(ver 5.x)的 WebRTC 连接 在初始化期间的 kurento-utils-js 库中,简化代码如下所示: if (!
在 unite.vim 中搜索后,你打开一个候选人。有没有一种简单的方法可以跳转到下一个而无需再次运行搜索命令?类似的插件( ack.vim , git-grep )使用快速修复窗口,因此您可以输入
为了我自己,我正在逐步测试 WebRTC 程序。 我为无服务器 WebRTC 编写了一些测试站点。 http://webrtcdevelop.appspot.com/ 其实使用的是google的STU
我有一个基本的 webRTC 应用程序,它支持两个同行之间的视频/音频通信和文件共享,当我在 Mozilla Firefox 上打开它时,该应用程序按预期运行,但当我在 Google Chrome 上
我是一名优秀的程序员,十分优秀!