0
我有一個國家代碼數組,如:["US","CZ","FR"]
等,我想通過這個數組迭代本地化的國家名稱。從地區代碼接收國家名
以前localizedString(forRegionCode:)
完美地工作。但可能自從10.3發生了變化。
下面是一個例子:
let currentLocale = Locale.current
// en_US (current)
let currentIdentifier = Locale.current.identifier
// "en_US"
let localeFromCurrentIdentifier = Locale(identifier: currentIdentifier)
// "en_US" (fixed)
let franceCode = "fr"
let franceName = currentLocale.localizedString(forRegionCode: franceCode)
// nil
let franceName2 = localeFromCurrentIdentifier.localizedString(forRegionCode: franceCode)
// "France"
那麼,爲什麼當前的區域返回nil
法國代碼和當前區域的標識符初始化返回France
的語言環境?
更新:所以解決辦法,使localizedString(forRegionCode:)
工作是不使用Locale.current
,但Locale(identifier: Locale.current.identifier)
。
在Xcode 8.3.1下的10.3模擬器中,這兩個版本都適用於我 –
可能是一個遊樂場問題。 – rmaddy
@ChrisAllwein有趣的是,如果我僅僅使用'current'而不是初始化單獨的區域設置,我的應用程序無法正常工作:/ – njuri