快速比较本地图像

时间:2016-07-04 18:25:13

标签: swift image if-statement uiimage

“可选类型Bool不能用作布尔值;请测试!nil”

我得到的错误

我正在尝试制作一款非常基本的“老虎机”应用 你按UIButton,三个图像应该随机改变,如果3匹配,打印“你赢了!”

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var img1: UIImageView!
@IBOutlet weak var img2: UIImageView!
@IBOutlet weak var img3: UIImageView!
@IBOutlet weak var rollBtn: UIButton!

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


@IBAction func onRollPress(sender: AnyObject) {
    let randomRoll = ImgArray().getRandomImage()
     img1.image = randomRoll
     img2.image = randomRoll
     img3.image = randomRoll

    if (img1.image! == img2 && img3) {
        print("You won!")
    }

}

}

1 个答案:

答案 0 :(得分:0)

如果您的图像在数组中,为什么不获取图像的索引并进行比较。或者您可以将图像转换为base64字符串并进行比较。

编辑:不太了解您的ImgArray课程,这可能适合您:

@IBAction func onRollPress(sender: AnyObject) {
let randomRoll1 = ImgArray().getRandomImage()
let randomRoll2 = ImgArray().getRandomImage()
let randomRoll3 = ImgArray().getRandomImage()

img1.image = randomRoll1
img2.image = randomRoll2
img3.image = randomRoll3

let imgIndex1 = ImgArray().indexOf(randomRoll1)
let imgIndex2 = ImgArray().indexOf(randomRoll2)
let imgIndex3 = ImgArray().indexOf(randomRoll3)

if (imgIndex1 == imgIndex2 && imgIndex3) {
    print("You won!")
}
}