Я медленно становлюсь быстрым.Функция Swift & Xcode 6 Если Else запускается и не останавливается
Не самый сложный, но все же дающий мне проблемы с потоком с моей логической точки зрения.
У меня есть функция, которая сравнивается, если textField
пуст.
Если он пуст, он вызывает предупреждение окна и вызывает функцию для анимации текстового поля, чтобы встряхнуть и выбрасывает экран предупреждения. Я, наконец, получил эту работу, но теперь, когда оператор IF запускается БЕЗ всплывающего окна предупреждения, код не останавливается в инструкции If и запускает весь код.
Я пытаюсь получить код для вызова функции в разделе IF и подготовиться к segue в разделе else.
Вот текущий рабочий код:
func alert() {
let animation = CABasicAnimation(keyPath: "position")
animation.duration = 0.1
animation.repeatCount = 4
animation.autoreverses = true
animation.fromValue = NSValue(CGPoint: CGPointMake(numOfGuestsData.center.x - 15, numOfGuestsData.center.y))
animation.toValue = NSValue(CGPoint: CGPointMake(numOfGuestsData.center.x + 15, numOfGuestsData.center.y))
numOfGuestsData.layer.addAnimation(animation, forKey: "position")
}
@IBAction func checkText(sender: UIButton) {
if self.numOfGuestsData.text == "" {
AudioServicesPlayAlertSound(SystemSoundID(kSystemSoundID_Vibrate))
alert()
let alertController = UIAlertController(title: "Split The Bill", message:
"Please Enter The Number of Guests!", preferredStyle: UIAlertControllerStyle.Alert)
alertController.addAction(UIAlertAction(title: "Okay", style: UIAlertActionStyle.Default,handler: nil))
presentViewController(alertController, animated: true, completion: nil)
} else {
println("everything is Ok Here")
}
}
Вот что я пытаюсь acheieve, но не работает правый
func alert() {
let animation = CABasicAnimation(keyPath: "position")
animation.duration = 0.1
animation.repeatCount = 4
animation.autoreverses = true
animation.fromValue = NSValue(CGPoint: CGPointMake(numOfGuestsData.center.x - 15, numOfGuestsData.center.y))
animation.toValue = NSValue(CGPoint: CGPointMake(numOfGuestsData.center.x + 15, numOfGuestsData.center.y))
numOfGuestsData.layer.addAnimation(animation, forKey: "position")
}
@IBAction func checkText(sender: UIButton) {
if self.numOfGuestsData.text == "" {
AudioServicesPlayAlertSound(SystemSoundID(kSystemSoundID_Vibrate))
alert()
println("something is wrong here")
} else {
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
let subTotalVC = segue.destinationViewController as subTotalAmountViewController
subTotalVC.numOfGuests = numOfGuestsData.text
}
println("everything is Ok Here")
}
}
Любые идеи, почему оператор if не работает, когда окно предупреждения там отсутствует?
Hi Joe. Всего несколько идей. Я уверен, что вы опередили меня на этом, вы определяете функцию переопределения внутри блока if then/else. Переменные (и, возможно, функции), определенные внутри оператора if, привязаны к оператору if, то есть они не будут распознаваться кодом вне оператора if. Я вижу, что вы определяете функцию, но я не вижу, чтобы вы ее называли. Кроме того, я никогда не определял функцию внутри оператора if. Я не знаю, как это будет работать. – jwlaughton
Я думаю, что функция вызывается с кодом «alert()». Я новичок в этом, поэтому я не знаю, что быстро делает с определенными вещами. Благодаря! –
Просто для смеха, положите точку останова внутри функции переопределения и посмотрите, вызван ли он когда-либо. – jwlaughton