2011-07-27 3 views
0

forLoop을 사용하여 여러 유니 코드의 디스플레이를보고 싶습니다. 그러나 컴파일러는 "% x"또는 "% d"문자열에서 유니 코드를 작성하는 것을 좋아하지 않습니다. 해결 방법이 있습니까?NSString 유니 코드 디스플레이

for (int k = 0; k < 16; k++){ 
    lbl.text =[NSString stringWithFormat:@"\u00B%x", k ];// <-- incomplete universal character name \u00B 
} 

감사

이 방법 대신

답변

5

: 여기 섹션 문자열과 비 ASCII 문자에 대한 문서에서

NSString stringWithUTF8String: 

당신이 달성하고자하는 것을 완전히 이해하고 있는지 확신 할 수 없습니다. 이 대답은 B0와 BF 사이의 범위의 유니 코드 문자를 생성하려고한다고 가정합니다.

\u 이스케이프 시퀀스 (%x 또는 %d 형식 지정자가 아님) 때문에 코드가 작동하지 않습니다. 오류 메시지를주의 깊게 읽으십시오. 이 코드에서는 %x 지정자가 첫 번째 숫자로 대체되고 이스케이프 시퀀스가 ​​두 번째로 평가된다고 가정합니다. 그러나 다른 방향으로 진행됩니다. 먼저 \u 시퀀스가 ​​컴파일러에 의해 평가되고 유효하지 않기 때문에 오류가 발생합니다.

for (unichar ch = 0xB0; ch <= 0xBF; ch++){ 
    lbl.text =[NSString stringWithFormat:@"%C", ch ]; 
} 

이 코드는 직접 문자열로 유니 코드 문자를 넣습니다 :

더 나은 (간단) 접근 방식은 다음과 같은 코드입니다.

+0

% C가 이모티콘 문자의 코드와 같은 32 비트 와이드 유니 코드를 처리 할 수 ​​있습니까? – jayatubi

+0

그래도 생각하지 않습니다. 문서에 따르면, 16 비트로 제한되어 있습니다. 그리고 이모티콘 문자는 그 범위를 벗어납니다. – Codo