2012-09-19 1 views
0

특정 로케일 식별자를 사용하여 NSLocale을 초기화하려는 경우, 그것이 합법적 식별자인지 어떻게 알 수 있습니까? 아무리 내가 쓰는 식별자라도 상관없이, NSLocale은 여전히 ​​무언가로 초기화됩니다.NSLocale - 유효하지 않은 식별자

예를 들어, 언어가 아랍어이고 국가 코드가 NO 인 로캘 인 "ar_NO"를 전달하면 내가 얻은 NSLocale 개체가 합법적 인 것으로 보입니다. 예를 들어 해당 로캘의 달력에서 -[NSCalendar firstWeekday]을 호출하면 월요일이 반환됩니다. 제 질문은 그것이 어디에서 오는 것입니까? 주어진 식별자를 사용할 수없는 경우 iOS가 다른 로케일로 폴백합니까? 나는 그것이 "ar"기지로 돌아갈 것이라고 생각할 것이다. 그러나 "ar"firstWeekday는 토요일이다. 그래서 그렇지 않다.

참고 : 식별자가 ISO BCP 47 사양에 따라 지정되었고 기능이 [NSLocale availableLocaleIdentifiers] 인 것을 알고 있지만 그 목록에없는 식별자를 사용하더라도 여전히 NSLocale을 얻을 수 있으므로 실제로 도움이되지 않습니다.

누구든지 어떤 생각이 있습니까? 미리 감사드립니다.

답변

0

주어진 NSLocale이 유효하지 않은 경우 로컬 기본 설정으로 되돌아갑니다. 로컬 장치 설정을 변경해보고 무슨 일이 일어나는지보십시오! 잘못된 로케일을 설정 한 후 [NSLocale currentLocale]을 인쇄하십시오. 그리고 그것이 무엇을 반환하는지보십시오.