2014-11-16 2 views
3

in iOS7 [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"] 모든 언어의 배열을 제공합니다. iOS8부터는 설치된 키보드로 변경된 것 같습니다.AppleLanguages는 더 이상 모든 언어를 반환하지 않습니다.

어떻게 iOS8에서 모든 언어의 배열을 얻을 수 있습니까?

+0

iOS 8.1 시뮬레이터에는 버그와 글로벌 환경 설정이 있습니다. 당신은이 장치 또는 sim에 이것을보고 있는가? –

+0

시뮬레이터에서 나는 내가 설치 한 키보드에 따라 언어를 얻는 장치에 빈 목록 (기본 구성, 내가 키보드를 추가하면 의심되는 목록)을 얻습니다. iOS7 장치에서이 프로그램을 실행하면 전체 목록을 얻을 수 있습니다. iOS7에서 나는 전체 목록을 얻곤했다. 더 이상 xcode6으로 마이그레이션 했으므로 확인할 수 없습니다. –

+0

Xcode 6에서 iOS sim 런타임을 설치할 수 있습니다. Xcode-> 환경 설정 -> 다운로드로 이동하십시오. iOS 8 sim에서이 기능을보고있는 중이므로 Xcode 6 릴리스 노트에서 언급 된 알려진 문제입니다. –

답변

0

NSUserDefaults를 쿼리하는 대신 +[NSLocale preferredLanguages]을 사용하십시오. Xcode 6.1 릴리스 노트에서 언급했듯이 iOS 8.1 시뮬레이터 런타임에는 알려진 버그가있어 작동하지 않습니다. 그러나 다른 시뮬레이터 버전 및 장치에서 예상대로 작동합니다.

사용자가 선호하는 언어가 아닌 지원되는 모든 언어의 목록을 보려면 +[NSLocale availableLocaleIdentifiers]을 사용하면 지원되는 모든 로캘 식별자의 NSArray를 반환 할 수 있습니다.

+0

나는 이것을 시험해 보았다. 설치된 키보드를 나타내는 언어 목록을 반환합니다. 이게 아니야. 다른 아이디어? –

+0

NSLocale의 설명서에 따르면 사용자가 선택한 언어 목록이 기본 설정 순서로 반환됩니다. 키보드와 관련된 것은 반환하지 말아야합니다. –

+0

그것이있을 수있는대로 ios sdk 8.1에서 ios SDK 7.1에서했던 것처럼 모든 applelanguages를 찾는 방법을 찾고 있습니다. 여기에 문제가 있습니다 : ios8에서 설정 -> 일반 -> 언어로 이동하면 목록을 편집 할 수 있습니다. ios7에는 모든 언어가 포함 된 테이블 뷰가 있었으며이를 선택할 수있었습니다. ios7과 같은 전체 목록이나 ios8의 "언어 추가 ..."를 누르면 나타나는 목록이 필요합니다. –

관련 문제