#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)"
}
}