2017-09-13 80 views
0

我想知道是否有任何回調或其他方式知道,當設備語言正在改變。我需要通知遠程服務器用戶已更改其設備語言。 我無法注意到更改,直到我再次啓動應用程序。我需要儘快知道設備語言的變化。其原因是,除非通知遠程服務器有關語言更改,否則我可能會以錯誤的語言獲得任何推送通知。iOS:如何知道設備語言何時更改?

+1

中檢查該值與當前語言代碼之間的值。[強制更改語言通知iOS]( https://stackoverflow.com/questions/17324589/forcing-a-language-change-notification-ios) – n00bProgrammer

+1

不是一個確切的重複,但你要找的是'NSCurrentLocaleDidChangeNotification'。在應用程序啓動時註冊。另外,請檢查'didBecomeActive'和'didEnterForeground'是否出現'locale'更改。 – n00bProgrammer

+0

在'NSCurrentLocaleDidChangeNotification'的幫助下使用 –

回答

1

當設備語言改變時,所有應用程序都被終止。因此,檢查語言更改的簡單方法是將UserDefaults中的當前語言代碼存儲在applicationDidEnterBackground(:)中,然後在application(:didFinishLaunchingWithOptions:)

+0

請看看我更新的問題。 – Shubham

+0

@Shubham在重新啓動應用程序之前,您將無法瞭解語言更改。對此你無能爲力。但我認爲這是一個真正的邊緣案例 - 有多少人真的改變了他們的設備語言(除了測試時的開發人員)? –

+0

感謝您的信息。一般來說,你對這種情況是正確的,我們很少改變設備語言。 – Shubham