【iOS】iOS9でNSLocale preferredLanguagesの件

iOS9で下記のようにやると、iOS8までの値と違うのが却ってくる。

よくネットで見かける取得の方法

NSString * country = [[NSLocale preferredLanguages] objectAtIndex:0];

iOS8までだと「ja」「en」とかが取得できるが、

iOS9から 「jp-JP」とか地域?まで取得されてしまう。

もし、NSLocaleを使って「ja」だったらとかの処理を入れていた場合は、

iOS9から上手く動かないので注意したほうがよい。

実装例1)
country = [country substringToIndex:2];

これでよいかと思ったが

中国語とか他の言語で2文字では無い場合はもっとひねりを加えてないと行けない

「zh-Hant-JP」とかでくるので、

最後の「-」以降は削除するようなコードを書けばよいかな。

もちろん「iOS9.0」が条件ですよ。


コメント

このブログの人気の投稿

【iOS】Swiftでtransformから角度、ラジアン、ディグリー、スケールを求める

【android】 Webviewのコントローラー(ピンチイン・ピンチアウトのボタン)を消す

【android】PdfDocumentとPdfRenderer を利用しPDFの作成と表示 (java)