根据文件定义[NSLocale preferredLanguages]
:
用户的语言首选项顺序为NSString对象数组,每个对象都是一个规范化的IETF BCP 47语言标识符。
[[NSBundle mainBundle] preferredLocalizations]
的定义:
NSString对象数组,每个对象都标识接收器包中的本地化。语言按首选顺序排列。
我真的不知道差异是什么。应该使用哪一个?
答案 0 :(得分:4)
我认为语言只是语言,但语言环境意味着更多(例如日历/日期计算,货币,数字格式等)。 Locales Programming Guide是一个简短的阅读,一个很好的起点。
更具体地说,作为捆绑资源的+preferredLocalizations
是应用程序本身的一个组件,可以在应用程序设计期间配置,而+preferredLanguages
来自NSLocale
(顺便说一句,它是一个类方法) ,而不是对象方法)表示用户的系统级首选项。
因此,+preferredLocalizations
提供应用实际运行的语言,而+preferredLanguages
提供用户更喜欢其应用运行的语言(即使应用尚不支持)。< / p>