質問: 設定画面の言語、国の情報を取得したいのですが、 ios9系だと NSLocale.preferredLanguages().first を使うと、 「ja-JP」と出力されます。 ios8以下だと、 「ja」と出力されます。 欲しい情報としては、「ja-JP」なのですが、ios8以下ではどのように「言語ー国」 を取得できるでしょうか。
回答: `NSLocale.preferredLanguages()`はもともと **言語コード** を返すAPIですので、デバイスの言語と地域の設定を取得する場合は、`NSLocale.currentLocale()`の方がより適切です。 iOS8までとiOS9以降での言語コードの扱い変化については、Technical Note TN2418を参照してみてください。 対して、`currentLocale()`は端末のロケール設定を取得するものですので、iOS8以前でも一貫して言語と地域を取得できます。 ``` NSLocale.currentLocale().localeIdentifier ``` を用いると、`ja_JP`が取得できます。ハイフンではなくアンダーバーで結合されています。