特定のロケール識別子で NSLocale を初期化しようとしている場合、それが正当な識別子であるかどうかをどのように確認できますか? 私がどんな識別子を渡しても、それがゴミであっても、NSLocale は何かに初期化されます。
たとえば、「ar_NO」、言語がアラビア語、(無効な) 国コードが NO のロケールを渡すと、得られる NSLocale オブジェクトは正当に見えます。たとえば、-[NSCalendar firstWeekday]
そのロケールのカレンダーから呼び出すと、月曜日が返されます。私の質問は、それはどこから来ているのですか? 指定された識別子を使用できない場合、iOS は別のロケールにフォールバックしますか? ベースの「ar」にフォールバックすると思いますが、最初の「ar」は平日なので、そうではありません。
注: 識別子が ISO BCP 47 仕様で指定されていることは知っており、[NSLocale availableLocaleIdentifiers]
関数についても知っていますが、そのリストにない識別子を使用しても NSLocale が取得されるため、実際には役に立ちません。
誰にも考えはありますか?前もって感謝します