получать текущий используемый язык в приложении - PullRequest
0 голосов
/ 03 июня 2018

Я пытаюсь выяснить current used language в моем приложении, как по этой ссылке:

Как получить код текущего языка с помощью Swift?

     let pre = Locale.preferredLanguages[0]

но он продолжает сбой и получил эту ошибку:

enter image description here

Как решить эту проблему и почему я получаю эту ошибку?

это толькопроисходит в таких классах, как:

class ButtonText: UIButton {
    let padding = UIEdgeInsets(top: 0, left: 35, bottom: 0, right: 0);
    let padding2 = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 35);
    let pre = Locale.preferredLanguages[0]

    override open func titleRect(forContentRect bounds: CGRect) -> CGRect {
        //if pre != "ar"{
        if let code = Locale.current.languageCode , code != "ar" {
            return UIEdgeInsetsInsetRect(bounds, padding)
        }else {
            titleLabel?.textAlignment = .left
            return UIEdgeInsetsInsetRect(bounds, padding2)
        }
        /* }else{
         titleLabel?.textAlignment = .left
         return UIEdgeInsetsInsetRect(bounds, padding2)
         }*/
    }
}

1 Ответ

0 голосов
/ 03 июня 2018

Ваш код на изображении не содержит ошибок, нам нужен предыдущий код и то, как вы используете эту кнопку, чтобы узнать, где находится исключение

Текущий languageCode с этой строкой является необязательной строкой

Locale.current.languageCode

, но сэта строка не является обязательной

Locale.preferredLanguages[0]

Так что попробуйте это и скажите мне результат

 override func titleRect(forContentRect contentRect: CGRect) -> CGRect {

    if let code = Locale.current.languageCode , code != "en" {

    } else{

    }
}
...