2012-08-29 4 views
2

가능한 중복 :
How do I get the name of a day of the week in the user’s locale?iOS 사용자의 평일 배열 가져 오기?

내가 (영어 아소을위한 EN) 두 문자 언어는 NSString을 얻는 방법을 알고있는 사용자 영역은 스웨덴 (SV-SE로 설정되어있는 경우에도 aso).

NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0] 

이제 사용자가 언어 및 스웨덴 지역을 영어로 설정했다고 가정 해 봅니다. 영어가 아닌 평일의 배열을 얻기위한 코드 은 무엇인가요? 스웨덴어가 아니거나 사용자가 선택할 수있는 언어와 지역의 콤보가 있습니까?

/존

다음
+0

@vikNingosegund Nope! 그 대답은 내가 한 것이 아니었다. 이 코드는 지역 설정을 사용하여 평일의 배열을 제공합니다. 선호하는 언어가 아닙니다. 이것은 중복이 아닙니다! –

+0

을 쉽게 적용 할 수 있습니다. – vikingosegundo

+0

@vikingosegusto 아니, 할 수 없다. 도와 주시겠습니까 .. –

답변

4

완벽한 첫 3 개 선호하는 언어에 대한 명령 줄 프로그램 예 :

#import <Foundation/Foundation.h> 

int main(int argc, const char * argv[]) 
{ 

    @autoreleasepool { 
     NSDateFormatter * df = [[NSDateFormatter alloc] init]; 
     NSArray * preferredLanguages =[[NSLocale preferredLanguages] subarrayWithRange:NSMakeRange(0, 3)]; 

     [preferredLanguages enumerateObjectsUsingBlock:^(NSString *languageIdentifier, NSUInteger idx, BOOL *stop) { 
      [df setLocale: [[NSLocale alloc] initWithLocaleIdentifier:languageIdentifier]]; 
      NSArray * weekdays = [df weekdaySymbols]; 
      [weekdays enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { 
       NSLog(@"%@ %@",languageIdentifier, obj); 
      }]; 
      NSLog(@"------------"); 
     }]; 


    } 
    return 0; 
} 

출력 언어를 독일어, 영어, 터키어 :

de Sonntag 
de Montag 
de Dienstag 
de Mittwoch 
de Donnerstag 
de Freitag 
de Samstag 
------------ 
en Sunday 
en Monday 
en Tuesday 
en Wednesday 
en Thursday 
en Friday 
en Saturday 
------------ 
tr Pazar 
tr Pazartesi 
tr Salı 
tr Çarşamba 
tr Perşembe 
tr Cuma 
tr Cumartesi 
------------ 

그냥 지적하십시오 : 귀하의 요구 사항에 대한
, 일 줄이 충분합니다.

NSDateFormatter * df = [[NSDateFormatter alloc] init]; 
[df setLocale:[[NSLocale alloc] initWithLocaleIdentifier:[[NSLocale preferredLanguages] objectAtIndex:0]]]; 
NSArray *weekdays = [df weekdaySymbols]; 
NSLog(@"%@", weekdays); 
+0

감사! 정말 도움이되었습니다! –

+1

@ JohnWilund 왜이 답변을 수락하지 않는 이유가 있습니까? – vikingosegundo