Разная реализация кода на iOS10 и iOS12

swift
xcode

#1

Есть код:

func displayWarningLabel(withText text: String) {
  warningLabel.text = text
    UIView.animate(withDuration: 3, delay: 0, usingSpringWithDamping: 0, initialSpringVelocity: 0, options: .curveEaseOut, animations: { [weak self] in self?.warningLabel.alpha = 1})
    { [weak self] complete in
        self?.warningLabel.alpha = 0}
}

На экране входа в приложение есть 2 textField (Email и Password), так же есть лейбл, который показывается после нажатия на кнопку Войти, если введены неверные данные или пустые поля входа. Реализуется это так

  guard let email = emailTextField.text, let password = passwordTextField.text, email != "", password != "" else {
        displayWarningLabel(withText: "Заполните все поля")
        print("Заполните все поля")
        return
    }

Код отлично работает на симуляторе с iOS11.2 и реальном девайсе с iOS10 на Xcode 9. После апдейта Xcode до 10.1 попробовал на симуляторе с iOS12.1 и реальном девайсе с iOS12, код не работает, то есть надпись “Заполните все поля”, к примеру, больше не появляется при попытке входа с пустыми полями, но в консоле при этом print("Заполните все поля") отображается. То есть не работает конкретно функция func displayWarningLabel(withText text: String). В чем может быть проблема?


#2

Рекомендации по конвертированию у Вас появлялись? Потому что разные версии языка у 10 и 12 версиях iOS и просто осталась старая версия


#3

Скажите, а где проверить конвертацию? После конвертации на 10ке будет работать?


#4

Это надо читать вам документацию что работает,а что нет. Потому что есть Команды для работы на разных версиях. А уведомление о конвертации при сборке приложения слева должна быть в виде желтого треугольника с восклицательным знаком


#5

Спасибо. Посмотрю. Если есть у кого еще идеи, буду благодарен


#6
   if #available(iOS 12, *) {
       // функции для нужной оси(у нас ios12) 
   } else {
       // функции для других
   }

Вот код для реализации на разных версиях swift


#7

Вопрос решил.
Конвертацию провел, не помогло. Не работала конкретно анимация, вот этот кусок кода

UIView.animate(withDuration: 3, delay: 0, usingSpringWithDamping: 0, initialSpringVelocity: 0, options: .curveEaseOut, animations: { [weak self] in self?.warningLabel.alpha = 1})
{ [weak self] complete in
    self?.warningLabel.alpha = 0}

Оказывается нужно было поставить параметры usingSpringWithDamping и initialSpringVelocity больше 0, хотя раньше все работало именно с 0.
Кто бы знал)