Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I want to look at the display of a number of Unicodes using a forLoop. However the compiler doesn't like "%x" or "%d" in the string to build a Unicode. Is there a work around?

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

thanks

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
1.0k views
Welcome To Ask or Share your Answers For Others

1 Answer

I'm not sure a fully understand what you're trying to achieve. For this answer, I assume that you want to generate the Unicode characters int the range between B0 and BF.

Your code doesn't work due to the u escape sequence (and not because of the %x or %d format specifiers). Just read the error message carefully. The code assumes that the %x specifier will be substituted with a number first and that the escape sequence will be evaluated second. However, it happens the other way round: First the u sequence is evaluated by the compiler and an error thrown because it is invalid.

A better (and simpler) approach is the following code:

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

This code directly puts a Unicode character into the string.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...