我试图通过使用 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
。
在将其传递给下标运算符之前,您需要确保 i
是 Int
类型。
您可以通过从 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/