Swift If语句和字符串错误

Swift If语句和字符串错误,swift,if-statement,Swift,If Statement,我有 以及 if rockNamesArray == "rock2" { let firstPos: CGFloat = 300.0 UIView.animateWithDuration(3.0, animations: { () -> Void in self.mrock.frame = CGRectMake(167, 600, CGFloat(self.mrock.bounds.size.width), CGFloat(self.mrock.boun

我有

以及

  if rockNamesArray == "rock2" {
    let firstPos: CGFloat = 300.0
    UIView.animateWithDuration(3.0, animations: { () -> Void in
        self.mrock.frame = CGRectMake(167, 600, CGFloat(self.mrock.bounds.size.width), CGFloat(self.mrock.bounds.size.height))
    })}

但它告诉我不能在if语句中使用“==”。我会在适当的地方使用什么。如果要检查
“rock2”
是否在数组中,则“rock2”是一个字符串:

var rockNamesArray:[String ] = ["bird", "rock2", "rock3"]

var rockpos = Int(arc4random_uniform(UInt32(3)))

var firstrockString:String = rockNamesArray[rockpos]
或者,如果要检查数组的某个索引,并将其与
中的“rock2”
进行比较,其中
n
是索引:

if contains(rockNamesArray, "rock2") {
    // Do your stuff
}

如果rocksNamesArray是一个数组,那么你无法将它与Giorasch所说的字符串相比较,
rocksNamesArray
是一个数组。你到底想比较什么?如果
rocksNamesArray
包含
“rock2”
,或者您必须指定要比较的
rocksNamesArray
索引。他们说,数组存储多个字符串变量,因此您希望rockNamesArray[2]数组为我放入数组中的每个图像分配一个值,对吗?因此,我希望它是,如果RNG生成1,它生成1,然后它移动分配值为1的图像。您可能需要枚举数组的项,每个单独的项可以与
“rock2”
进行比较。我这样做了,但我想做的是使RNG选择一个数字,0、1或2,然后在屏幕上向下移动图像。我知道你对if rockNamesArray[n]有什么看法,但它只是移动了它们。数组和内容不在视图控制器或任何东西中,动画在ViewDidDisplay func中
var rockNamesArray:[String ] = ["bird", "rock2", "rock3"]
var rockpos = Int(arc4random_uniform(UInt32(3)))

if rockNamesArray[rockpos] == "rock2" {
    let firstPos: CGFloat = 300.0
    UIView.animateWithDuration(3.0) {
        self.mrock.frame = CGRectMake(167, 600, CGFloat(self.mrock.bounds.size.width), CGFloat(self.mrock.bounds.size.height))
    }
}