2016-10-25 2 views
0

Я получил эту ошибку, когда я конвертировать мое приложение к быстрой 3Неоднозначность ссылки на член «подстрочный»

неоднозначной ссылке на член «подстрочный»

в настоящем Кодексе:

internal func getSelectedLocale()->String{ 

    let lang = Foundation.Locale.preferredLanguages 
    let languageComponents: [String : String] = Foundation.Locale.components(fromIdentifier: lang[0]) 
    //Here is the error 
    if let languageCode: String = languageComponents[NSLocale.Key.languageCode]{ 

     for locale in availableLocales { 
      if locale.languageCode == languageCode { 
       if locale.languageCode! == "en"{ 
        return "en"} 
       else{ 
        return locale.languageCode!+"-"+locale.countryCode!.uppercased() 
       } 
      } 
     } 
    } 
    return "en" 

} 

может кто-нибудь мне помочь?

+0

Где ошибка? В строке выше или ниже вставленного комментария? – Codo

+0

ошибка в этой строке if let languageCode: String = languageComponents [NSLocale.Key.languageCode] {...... @Codo –

ответ

0

С components(fromIdentifier возвращается [String:String] вы должны пройти rawValue от Key

if let languageCode = languageComponents[NSLocale.Key.languageCode.rawValue] { ... 

, но на самом деле preferredLanguages возвращает массив кодов стран

Смежные вопросы