我想寫一段代碼的測試,我寫的使用NSDateFormatter將日期轉換爲en_US_POSIX。測試似乎在運行時啓動iOS模擬器,並且在此處更改語言似乎也會更改運行測試時使用的語言。已解決:iOS模擬器:改變語言不會改變[NSDate日期]輸出的格式
有沒有一種方法可以以編程方式設置模擬器的語言,以便特定的測試(或測試套件)將以我想測試的正確語言進行操作?
[更新]我用「-AppleLanguages」和「-AppleLocales」參數爲我的計劃嘗試過,但似乎都不在試驗過程中影響語言 - [[NSLocale currentLocale] localeIdentifier]
仍返回en_US
和[NSDate date]
仍然輸出作爲一個正常的格式爲yyyy-MM-dd HH:mm:ss ZZZ
。
[更新]我不認爲這是重複的。文章引用了改變設置中的語言沒有任何作用,但我可以在我的模擬器中做到這一點,並看到我的應用程序鍵盤語言更改。該問題圍繞對[NSDate日期]的簡單調用進行,總是以en_UTC樣式格式返回日期,而不管使用的是非羅馬字符集的語言,如阿拉伯語。
[更新]我找到了解決方案。顯然,[NSDate date]等函數的輸出由系統LOCALE確定,而不是語言。刪除-AppleLanguages參數並將其替換爲-AppleLocale ar_AE
導致[NSDate date]
的輸出顯示爲阿拉伯語,這正是我所需要的。
您是如何格式化-AppleLanguages的參數的? '-AppleLanguages(es)'? – 2015-02-11 23:47:48
我試過使用短格式(ar)以及全名,如(阿拉伯語)。在這兩種情況下,[NSLocale preferredLanguages] objectAtIndex:0]都會返回「ar」,因此它似乎接受這兩種格式。 – Argus9 2015-02-12 14:48:23