使用arc4random_uniform生成随机数

时间:2018-04-22 22:49:15

标签: ios swift

我想生成一些随机数(1到限制)并用数组存储它们。这是我的代码:

var results = [Int]()
    for i in 0...qut
    {
        let lim = limit - 1
        results[i] = Int(arc4random_uniform(lim)) + 1
    }

然后xcode告诉我"无法转换类型' Int'预期的参数类型' UInt32'。 "

所以我做了一些改变:

results[i] = Int(arc4random_uniform(UInt32(lim))) + 1

现在没有错误。但是当我运行它时,它报告错误:"致命错误:索引超出范围。"

有人能告诉我如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您无法使用下标向数组添加项目。您需要使用数组append()函数:

results.append(Int(arc4random_uniform(UInt32(lim))) + 1)

如果您使用map()函数,则更简单:

let count = 10
let limit = 5
let results = (0...count).map { _ in Int(arc4random_uniform(UInt32(limit))) + 1 }