【问题标题】:Ambiguous reference to member 'subscript'对成员“下标”的模糊引用
【发布时间】:2016-10-25 11:42:35
【问题描述】:

当我将我的应用程序转换为 swift 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"

}

有人可以帮我吗?

【问题讨论】:

  • 哪里出错了?在插入评论的上方或下方的行中?
  • 如果 let languageCode: String = languageComponents[NSLocale.Key.languageCode]{...... @Codo 这行的错误

标签: ios swift3


【解决方案1】:

由于components(fromIdentifier 返回[String:String] 你必须通过rawValueKey

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

但实际上 preferredLanguages 返回一个国家代码数组

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-01
    • 2017-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多