2012-09-19 34 views
0

如果我试图用特定区域标识符初始化NSLocale,我该如何判断它是否是合法标识符?无论我传入什么标识符,即使是垃圾邮件,NSLocale仍会被初始化为某种东西。例如,如果您传入“ar_NO”(一种语言为阿拉伯语并且(无效)的国家代码为NO的语言环境,则我得到的NSLocale对象似乎是合法的。例如,如果我从具有该语言环境的日历中调用-[NSCalendar firstWeekday],它将返回星期一。我的问题是从哪里来的?如果iOS无法使用给定的标识符,iOS是否会回退到其他语言环境?我认为它会回落到基础“ar”,但“ar”首先是周六,所以情况并非如此。注意:我知道标识符是由ISO BCP 47规范指定的,我知道[NSLocale availableLocaleIdentifiers]函数,但这并不能真正帮助我,因为如果我使用的标识符不在该列表中,我仍然会得到一个NSLocale。NSLocale - 无效标识符

任何人有任何想法?在此先感谢

回答

0

我认为它会回落到本地默认设置,如果给NSLocale无效。尝试改变本地设备设置,看看会发生什么!设置无效语言环境后,请打印[NSLocale currentLocale];并查看它返回的结果。