2013-08-04 5 views
1

개인 항목이 포함 된 고유 한 Eng-Rus 사전을 프로그래밍하고 싶습니다. 주제를 공부하면서 (학습의 목적에서)이 메소드를 작성했으며 NSMutableDictionary를 러시아어 콘솔에 출력 할 수 없습니다. 코드와 콘솔 출력을보십시오. 행운을 빌어 GDB에 대한 LLDB를 비활성화하려고했습니다. 인코딩 설정은 UTF8 (xcode 4.6.3)입니다. 따라서 "프로그래머"문제가 있다고 생각합니다. 즉, 저는 단지 뭔가를 모릅니다. 나는 아직도유니 코드 문자가 NSLog 출력에 올바르게 표시되지 않습니다.

-(NSString*) dicto 
{ 
    NSString *vic; 
    NSMutableDictionary *dictos = [[NSMutableDictionary alloc]initWithCapacity:10] ; 

    [dictos setValue:@"кошка" forKey:@"cat"]; //at the console output below NO Russian 
    [dictos setValue:@"dog" forKey:@"собака"]; //at the console output below NO Russian 

    NSArray *final=[dictos allKeys]; 
    id vid =[final objectAtIndex:1]; 
    NSLog(@"vid is %@",vid); // prints in Russian 
    NSLog(@"%@", dictos); //this line probably has an issue 
    vic=vid; 
    return vic; //the label.text in sender (=iphone simulator) prints Russian 
} 

콘솔 출력 (엑스 코드 낮은 창)

2013-08-04 23:20:33.958 helloWorldToConsolFromNSLog[17718:c07] vid is собака 
2013-08-04 23:20:33.958 helloWorldToConsolFromNSLog[17718:c07] { 
    cat = "\U043a\U043e\U0448\U043a\U0430"; 
    "\U0441\U043e\U0431\U0430\U043a\U0430" = dog; 
} 

답변

3

NSLog는 인쇄하기 위해 description 방법을 사용하여 ... 그래서 당신의 도움이, 친구가 필요, 학습 NSDictionary (또는 NSArray), 및 \Unnnn 이스케이프 된 양식의 모든 비 ASCII 문자를 인쇄합니다.

NSLogdescription디버깅 출력에만 사용해야합니다. 따라서이 문제는 전혀 없습니다. 모든 키와 값이 올바르게 저장됩니다.

+0

그래서 키를 변환해야합니다. || vid 변수에 대한 ID 값은 무엇입니까? – Ilan

+1

@Ilan : 아니요, NSString * vic = [final objectAtIndex : 1] 또는 NSString * x = [dictos objectForKey : @ "cat"]'문제없이 작동합니다. –

+0

콘솔 출력을 의미합니다. 그러나 모든 항목이 올바르게 저장되었다고 말하면 아무런 문제가 없습니다. 가능하면 걱정이됩니다! # $ % # $ % & 실제 기기에서 출력 .... – Ilan

관련 문제