2012-09-19 41 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];並查看它返回的結果。