【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」が条件ですよ。
よくネットで見かける取得の方法
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」が条件ですよ。
コメント
コメントを投稿