【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でCGAffineTransformから角度・ラジアン・度数・スケールを計算する方法

【iOS】UILabelでヒラギノフォントの上下が切れる問題と対処法

【Android】WebViewのズームボタン(ピンチイン・ピンチアウト)を非表示にする方法