2017-04-21 6 views
0

NSLocaleからいくつかの基本情報を印刷しようとしていますが、.scriptCodeプロパティから値を取得できません。SwiftのNSLocale .scriptCodeの値を取得する方法

は現在、該当するビットは、印刷は常に 'ゼロ' を返し

let localeIdent = NSLocale.autoupdatingCurrent.identifier 
let userLocale = NSLocale(localeIdentifier: localeIdent) 
let languageScript = userLocale.scriptCode //not sure why this doesn't seem to return anything. 
print("Language script code: \(languageScript)") 

です。

ロケールは、私と地域や言語などの情報の残りの部分を返します。なぜ、これが保存/戻されないのかわかりません。

+1

FYI - Swift 3のNSLocaleではなく、 'Locale'を使用してください。 – rmaddy

+0

これには特別な理由がありますか? – Matt

答えて

1

すべてのロケールがスクリプトコードを持っているわけではありません。 Internationalization and Localization GuideLanguage and Locale IDsセクションを参照してください。

ロケール識別子には、言語コード、スクリプトコード、地域コードなどのさまざまな部分を含めることができます。スクリプトと地域コードはオプションです。

例えばLocale scriptCodeのドキュメントを見てみましょう。

たとえば、ロケール「ZH-ハント-HK」について、「ハント」を返します。

en_USde_DEのような単純なロケールには、スクリプトコードはありません。

+0

ちょっと馬鹿だと感じました - 私はそれを試してもまだ無回答でしたが、もう一度試してみると、私は応答を得ました。ありがとう! – Matt

関連する問題