【发布时间】:2014-09-17 21:09:48
【问题描述】:
如果使用 swift 数组,NSArray 是否在幕后积极参与?
为了证明它似乎是,把它放在一个 SingleViewController 中:
var _board:[[Int]] = []
let numRows = 12
let numColumns = 11
func setupBoard() {
for r in 0..<numRows {
var boardRow:[Int] = []
for c in 0..<numColumns {
var one = 1
boardRow.append(one)
}
_board.append(boardRow)
}
}
func scramble() {
let randomRow = Int(arc4random_uniform(UInt32(numRows)))
let randomColumn = Int(arc4random_uniform(UInt32(numColumns)))
let someValue = randomRow * numRows + randomColumn
_board[randomRow][randomColumn] = someValue
}
然后在viewDidLoad中,
setupBoard()
let startTime = NSDate()
println("Start")
for i in 0...2000 {
scramble()
}
let stopTime = NSDate();
let interval = stopTime.timeIntervalSinceDate(startTime)
println("Done took: \(interval)")
在控制台中出现 Start 消息后,暂停执行。 这需要不止一次尝试,但会看到如下内容:
为什么?潜在的动机是确定为什么将值放入数组需要比预期更长的时间。
【问题讨论】:
标签: arrays performance swift nsarray