ios - 如何访问数组中的随机索引

标签 ios arrays variables swift

我试图通过使用 arc4random 生成随机索引来访问使用随机索引的数组。如果我的“术语的技术用法”不正确,我很抱歉,因为我对开发场景还很陌生。

var backLeft = ["Clear","Drop","Smash"];    
var i = (arc4random()%(3))
var shot = backLeft[i]

这在第三行给我一个错误,

Could not find an overload for 'subscript' that accepts the supplied arguments.

但是,如果我使用,

var i = 2
var shot = backLeft[i]

然后它不会给我任何问题。来自 php 背景,我似乎不知道这里出了什么问题。

谢谢! :) PS:我正在 Swift Playground 中的 XCODE 6 上尝试这个

最佳答案

这是由于 Swift 对类型安全的强制执行。

arc4random() 返回一个 UInt32,下标运算符接受一个 Int

在将其传递给下标运算符之前,您需要确保 iInt 类型。

您可以通过从 i 初始化一个 Int 来做到这一点:

var shot = backLeft[Int(i)]

或者,您可以在将随机值分配给 i 之前对其执行相同的操作,然后正常访问 i:

var i = Int(arc4random()%(3))
var shot = backLeft[i]

关于ios - 如何访问数组中的随机索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24043295/

相关文章:

arrays - Bash:将 ls 保存在一个数组中 -> 只接收小写字母

c - 如何给结构体数组赋值

python - 将正则表达式结果保存到变量中

qt - 获取 Qt Widget 的变量名称(用于样式表)?

ios - 如何确保 NSUrlSession 不获取缓存页面?

iphone - 在 cocos2d 中使用 NSTimer 制作随机对象

ios - 未检测到 SKAudioNode 完成(使用 SKAction)

c - 数组名是指针吗?

c++ - 我在这一行代码中的语法有什么问题(指针和引用以及取消引用哦,我的)?

ios - RxSwift 如何将 "clear all"UIButton 添加到简单的电子表格示例