【发布时间】:2016-11-01 19:23:30
【问题描述】:
我需要为我正在尝试快速构建的应用程序随机化一个数组,并测试我创建的函数,我将它放入带有示例数组的游乐场。我意识到这里有人问过这个问题:How do I shuffle an array in Swift? 但我只是想知道为什么这种特定方式不起作用。这是我的代码:
import UIKit
var arrayOne : [String] = ["????", "????", "????", "????", "????"]
func randomizeArray(array : [String]) -> [String] {
var randomizedArray : [String] = []
var copyOfArray : [String] = array
repeat {
let arrayCount : Int = array.count - 1
let randomElement : Int = Int(arc4random_uniform(UInt32(arrayCount)))
let arraySlice : String = array[randomElement]
randomizedArray.append(arraySlice)
copyOfArray.remove(at : randomElement)
} while array.count > 0
return randomizedArray
}
print(randomizeArray(array : arrayOne))
当我尝试使用数组 1 打印函数时,它显示“致命错误:索引超出范围。”任何想法为什么会发生这种情况?
【问题讨论】:
-
对于包含 5 个元素的数组,您可以轻松地调试问题。在 Xcode 中单步执行代码,您会很快发现问题出在哪里。
-
然后去掉所有不必要的类型注解...