2013-08-04 158 views
1

我想用個性化條目編寫我自己的英英字典。學習這個主題我寫了這個方法(爲了學習) - 我無法輸出俄語的CONSOLE中的NSMutableDictionary。查看代碼和控制檯輸出。我試圖禁用LLDB GDB沒有運氣。編碼前綴是UTF8(xcode 4.6.3)。所以,我認爲我有一個「程序員」問題 - 即我只是不知道什麼。我還在學習,所以需要你的幫助,朋友......Unicode字符在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 
} 

控制檯輸出(XCode中較低的窗口)

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

所以我需要轉換鍵||值爲id,就像我爲vid變量做的那樣? – Ilan

+1

@Ilan:不,NSString * vic = [final objectAtIndex:1]'或'NSString * x = [dictos objectForKey:@「cat」]'沒有問題。 –

+0

我的意思是控制檯輸出。但是,如果你說所有條目都正確存儲,那麼沒問題。我擔心可能!#$%#$%&在真實設備上輸出.... – Ilan

相關問題