2012-09-29 2 views
1

iOS에서 사용자 언어를 확인하려고합니다. StackOverflow에는이 주제와 관련하여 다음과 같은 몇 가지 해답이 있습니다. Getting current device language in iOS?현재 사용자 언어로 iOS를 쿼리 할 수 ​​없습니다.

NSLog에서 찾고자하는 값 (예 : "en"또는 "de")을 성공적으로 검색 할 수 있지만 매번 if/then 문으로이 질문을합니다. 작동하지 않는 것 같습니다. 나는 시험을 위해 내있는 viewDidLoad이 있습니다 장치가 영어 또는 독일어가 마지막 else 문이 표시로 설정되어

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
NSString *myLanguage = [[NSLocale preferredLanguages] objectAtIndex:0]; 
NSLog(@"The current languague is %@.", myLanguage); 

if (myLanguage == @"de") { 
    self.myLabel.text = @"German"; 
} else if (myLanguage == @"en") { 
    self.myLabel.text = @"English"; 
} else { 
    self.myLabel.text = @"didn't work"; 
} 
} 

상관없이합니다. 그러나 NSLog는 en 또는 de 중 하나를 올바르게 표시합니다.

내가 뭘 잘못하고 있니?

답변

1

NSString 비교는 isEqualToString: 메서드로 수행됩니다. 귀하의 코드에서 두 개의 다른 NSString 개체를 비교하는 대신, 각각의 내용을 비교해야합니다.

두 개의 개체가있는 경우 모든 개체의 값이 같더라도 항상 다릅니다. 그렇기 때문에 멤버와 같은 개체를 비교하는 방법이 있습니다.

은 교체 :

if (myLanguage == @"de") 

if ([myLanguage isEqualToString:@"de"]) 

및 코드에서 else if들에 대해 동일로.

+0

이 점을 명확히 해 주셔서 감사합니다. 이제 대접처럼 ;-) –

+0

@JayVersluis 당신은 환영합니다 :) – iska