Сравнение целых чисел

#ios #swift #xcode #integer

#iOS #swift #xcode #целое число

Вопрос:

В моем проекте есть две кнопки, которые добавляют оценку = 1 к двум отдельным меткам. Я намерен сравнить целые числа в метках, если они равны или нет, и выдать результат (в данном случае целое число) в другой отдельной метке, которая показывает мне сценарий. Но при нажатии одной из двух кнопок ничего не происходит. Метка показывает, что целые числа равны, но это невозможно, потому что целые числа в метках больше не равны.

 override func viewDidLoad() {
    super.viewDidLoad()

    if scoreAdd == scoreAdd1 {
        time.text = "(regulargame)"
    }else {
        overtime = regulargame   30
       time.text = "(overtime)"
    }

    // 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 btn1(_ sender: AnyObject) {
    scoreAdd  = 1
    score1.text = "(scoreAdd)"
}

@IBAction func btn2(_ sender: AnyObject) {
    scoreAdd1  = 1
    score2.text = "(scoreAdd1)"
}
  

}

Комментарии:

1. Как вы думаете, где вы сравниваете эти целые числа?

2. в инструкции if

3. Джули: Это в viewDidLoad . Вы тоже перезагружаете представление при каждом нажатии?

4. Нет, я не перезагружаю представление при каждом нажатии.

5. Джули: Тогда почему viewDidLoad при каждом нажатии вызывается вызов?

Ответ №1:

viewDidLoad будет вызываться только при загрузке представления ViewController. Если вы хотите проверять целые числа при каждом нажатии кнопки, вы должны делать это явно:

 override func viewDidLoad() {
  super.viewDidLoad()
  self.setTimeText()
  // 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 btn1(_ sender: AnyObject) {
    scoreAdd  = 1
    score1.text = "(scoreAdd)"

    self.setTimeText()
}

@IBAction func btn2(_ sender: AnyObject) {
    scoreAdd1  = 1
    score2.text = "(scoreAdd1)"

    self.setTimeText()
}

/// Is called whenever a score changes
func setTimeText() {
    if scoreAdd == scoreAdd1 {
        time.text = "(regulargame)"
    } else {
        overtime = regulargame   30
        time.text = "(overtime)"
    }
}