Знак не равно не работает в Swift
Счет увеличивается, когда карты равны, что я и хочу, но также увеличивается, когда карты не равны. Я пытался использовать знак "не равно", но все равно не получилось.
@IBAction func SnapButtonTapped(sender: UIButton) {
if firstRandomNumber == SecondRandomNumber {
print("index match")
self.playerScore += 1
self.playerScoreLabel.text = String(self.playerScore)
}
else if firstRandomNumber != SecondRandomNumber {
print("no match")
}
//get the audioPlayer that correspond to the button that they tapped
let audioPlayer = audioPlayers[sender.tag]
audioPlayer.play()
}
Это остальная часть моего кода.
import UIKit
import AVFoundation
let firstRandomNumber = Int()
let SecondRandomNumber = Int()
let firstCardString = String()
let SecondCardString = String()
class ViewController: UIViewController {
@IBOutlet weak var FirstCardImageView: UIImageView!
@IBOutlet weak var SecondCardImageView: UIImageView!
@IBOutlet weak var PlayRoundButton: UIButton!
@IBOutlet weak var BackgroundImageView: UIImageView!
@IBOutlet weak var playerScoreLabel: UILabel!
let soundFilenames = ["shuffle", "correct"]
var audioPlayers = [AVAudioPlayer]()
var playerScore: Int = 0
var cardNamesArray: [String] = ["sad", "sleepy","angry"]
var cardNamesArray2: [String] = ["triste", "cansado","enfadado"]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
//set up audio player
for sound in soundFilenames {
do {
//try to do something
let url = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource(sound, ofType:"wav")!)
let audioPlayer = try AVAudioPlayer(contentsOfURL: url)
audioPlayers.append(audioPlayer)
}
catch {
//catch the error
audioPlayers.append(AVAudioPlayer())
}
}
self.PlayRoundButton.setTitle("Play", forState: UIControlState.Normal)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func playRoundTapped(sender: UIButton) {
self.PlayRoundButton.setTitle("Shuffle Cards", forState: UIControlState.Normal)
//First Card generate random number
let firstRandomNumber = Int (arc4random_uniform(3))
let firstCardString:String = self.cardNamesArray[firstRandomNumber]
self.FirstCardImageView.image = UIImage(named: firstCardString)
//Second Card generate random number
let SecondRandomNumber = Int (arc4random_uniform(3))
let SecondCardString:String = self.cardNamesArray2[SecondRandomNumber]
self.SecondCardImageView.image = UIImage(named: SecondCardString)
//determine matching cards
let audioPlayer = audioPlayers[sender.tag]
audioPlayer.play()
}
1 ответ
Решение
Это сфера. Вы думаете, что вы устанавливаете firstRandomNumber
& SecondRandomNumber
(пожалуйста, не используйте заглавные буквы для переменных!) для случайных чисел, но на самом деле вы объявляете их заново. Удалить let
в playRoundTapped
и изменить объявления верхнего уровня этих двух на var
s.