gpt4 book ai didi

ios - 如何从 Swift 中的数组中提取随机项?

转载 作者:可可西里 更新时间:2023-11-01 00:24:37 24 4
gpt4 key购买 nike

我正在尝试从数组中随机抽取一个项目。当我运行时,它在拉随机项目和给我这个错误“EXC_BAD_INSTRUCTION”之间大约工作 50/50。知道发生了什么事吗?

现在我的代码如下所示:BEFORE Solution

   func randomCard() -> Card {
let randomIndex = Int(arc4random()) % cardArray.count
let randomCard = cardArray[randomIndex]

cardArray.removeAtIndex(randomIndex)

return randomCard
}

之后

   func randomCard() -> Card {

let randomIndex = arc4random_uniform(UInt32(cardArray.count))
let randomCard = cardArray[randomIndex.hashValue]

cardArray.removeAtIndex(randomIndex.hashValue)

return randomCard
}

这就是我现在正在使用的并且似乎可以正常工作。感谢大家的帮助。

最佳答案

arc4random 可以返回负数,这会给您带来问题,因为 negative % positive = negative 更好的方法是使用 arc4random_uniform

let randomIndex = arc4random_uniform(UInt32(cardArray.count))

EXC_BAD_INSTRUCTION 似乎是抛出边界错误的糟糕异常,但这似乎就是您得到的结果。

关于ios - 如何从 Swift 中的数组中提取随机项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24089631/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com