My code is randomly generating 2 separate images on the same interface controller. I need to check if the images match each other, but i'm unsure how to go about this as they are being randomly generated. I have tried writing if statements such as:
if blueColour.setBackgroundImageNamed("colour\(randomImage).jpg") == mainBackgroundColour.setBackgroundImageNamed("mainColour\(randomMainBackground).jpg") {
println("they match")
} else {
println("they dont match")
}
but it doesn't seem to work, i get an error saying "binary operator '==' cannot be applied to two Void operands"
My code is below:
@IBOutlet var blueColour: WKInterfaceButton!
@IBOutlet var pinkColour: WKInterfaceButton!
@IBOutlet var greenColour: WKInterfaceButton!
@IBOutlet var yellowColour: WKInterfaceButton!
@IBOutlet var mainBackgroundColour: WKInterfaceGroup!
@IBOutlet var scoreLabel: WKInterfaceLabel!
var randomImage = UInt32()
var randomMainBackground = UInt32()
@IBAction func onePressedTest() {
if blueColour.setBackgroundImageNamed("colour\(randomImage).jpg") == mainBackgroundColour.setBackgroundImageNamed("mainColour\(randomMainBackground).jpg") {
println("they match")
} else {
println("they dont match")
}
randomImage = arc4random_uniform(4)
blueColour.setBackgroundImageNamed("colour\(randomImage).jpg")
randomImage = arc4random_uniform(4)
pinkColour.setBackgroundImageNamed("colour\(randomImage).jpg")
randomImage = arc4random_uniform(4)
greenColour.setBackgroundImageNamed("colour\(randomImage).jpg")
randomImage = arc4random_uniform(4)
yellowColour.setBackgroundImageNamed("colour\(randomImage).jpg")
randomMainBackground = arc4random_uniform(4)
mainBackgroundColour.setBackgroundImageNamed("mainColour\(randomMainBackground).jpg")
}
NEW AMENDED CODE 20.04.2015:
import WatchKit
import Foundation
protocol WKInterfaceComparableImage {
func getImage()->UIImage;
func equalsImage(comparableWKObject:WKInterfaceComparableImage)->Bool;
}
class WKInterfaceButtonComparable : WKInterfaceButton, WKInterfaceComparableImage {
private var image:UIImage?;
override func setBackgroundImage(image: UIImage?) {
self.image = image;
super.setBackgroundImage(image);
}
func equalsImage(comparableWKObject: WKInterfaceComparableImage)->Bool {
return self.image === comparableWKObject.getImage();
}
func getImage() -> UIImage {
return image!;
}
}
class WKInterfaceGroupComparable : WKInterfaceButton, WKInterfaceComparableImage {
private var image:UIImage?;
override func setBackgroundImage(image: UIImage?) {
self.image = image;
super.setBackgroundImage(image);
}
func equalsImage(comparableWKObject: WKInterfaceComparableImage)->Bool {
return self.image === comparableWKObject.getImage();
}
func getImage() -> UIImage {
return image!;
}
}
class ImageProvide {
private let MAX_RANDOM_NUMBER:UInt32 = 4
static let shared:ImageProvide = ImageProvide();
var images:[UIImage];
private init() {
images = [];
for i in 1...MAX_RANDOM_NUMBER {
//get image with the best way to you
images.append(UIImage(named: "colour\(i).jpg")!);
}
}
func getRandomImage()->UIImage {
let randomImage = arc4random_uniform(MAX_RANDOM_NUMBER);
return getImage(id: Int(randomImage));
}
func getImage(#id:Int)->UIImage {
return images[id];
}
}
class InterfaceController: WKInterfaceController {
@IBOutlet var blueColour: WKInterfaceButtonComparable!
@IBOutlet var pinkColour: WKInterfaceButtonComparable!
@IBOutlet var greenColour: WKInterfaceButtonComparable!
@IBOutlet var yellowColour: WKInterfaceButtonComparable!
@IBOutlet var mainBackgroundColour: WKInterfaceGroupComparable!
@IBOutlet var scoreLabel: WKInterfaceLabel!
var randomImage = UInt32()
var randomMainBackground = UInt32()
var score:Int = 1
@IBAction func onePressedTest() {
if blueColour.equalsImage(mainBackgroundColour) || pinkColour.equalsImage(mainBackgroundColour) || greenColour.equalsImage(mainBackgroundColour) || yellowColour.equalsImage(mainBackgroundColour) {
println("they match")
scoreLabel.setText("\(score)")
score++
} else {
println("they dont match")
}
blueColour.setBackgroundImage(ImageProvide.shared.getRandomImage())
pinkColour.setBackgroundImage(ImageProvide.shared.getRandomImage())
greenColour.setBackgroundImage(ImageProvide.shared.getRandomImage())
yellowColour.setBackgroundImage(ImageProvide.shared.getRandomImage())
mainBackgroundColour.setBackgroundImage(ImageProvide.shared.getRandomImage())