2012-07-10 2 views
1

유니 코드 문자를 인쇄하는 코드를 만드는 루프가 있습니다 (10-a 등을 변환하지 않은 것을 알고 있습니다). 요점은, 유니 코드 문자열 (이 경우 일본어 히라가나)을 만들기 위해 루프를 돌린 후 실제로 로그에 기록하거나 텍스트 값을 설정하려고 할 때 Xcode에서 인쇄 가능한 문자로 가져 오는 방법입니다. 그것은 단지 나에게 줄을 준다.코코아에서 문자열 반복에서 생성 된 유니 코드를 인쇄하는 방법은 무엇입니까?

for (int i=4;i<10;++i) { 
    NSString *thirdchar = [NSString stringWithFormat:@"%d", i]; 
    for (int p=0;p<16;++p) { 
    NSString *fourthchar = [NSString stringWithFormat:@"%d", p]; 
    NSString *unicode = @"u30"; 
    unicode = [unicode stringByAppendingString:thirdchar]; 
    unicode = [unicode stringByAppendingString:fourthchar]; 
    NSLog(@"unicode \%@", unicode); 
    } 
} 
+1

당신이 중 하나'unichar' 변수를 생성하고 '사용을 고려해 볼 수 있습니다 :'하나 하나에서 문자열을 만들거나 당신의 p 루프 내부 예를 들어

, 동등한 UTF-8 바이트 시퀀스로'char' 배열을 만들고'[NSString stringWithUTF8String : myBytes]'를 사용합니다. '\ uNNNN' 치환은 당신이 구축하는 것처럼 보이는 "동적 인"'\ u' 시퀀스를 지원하기에는 너무 빨리 발생합니다. –

+0

@Kevin이 맞습니다.'@ "\ uNNNN"은 컴파일시 적용됩니다. –

+0

예를 들어 뼈를 던질 수 있습니까? unichar 변수를 사용했는데 그 변수를 꺼낼 수 없습니다. – Kevrone

답변

0

문자열을 쓰려고 시도하는 대신 숫자로 코드를 작성하십시오. [있는 NSString의 stringWithCharacters :이 문장은 MyChar 길이 : 1]

unichar x = (0x3000 + 0x10 * i + p); 
NSString *str = [NSString stringWithCharacters:&x length:1]; 
NSLog(@"unicode %@", str); 
+0

정수 엔티티 12343 (ish) 대신 16 진수 코드 엔티티로 전환해야했지만 내 친구가 흔들리지 만 여전히 내 끝에 매우 어리 석고있는 unichar에 적절한 서식이 없습니다. – Kevrone

관련 문제