2012-07-10 116 views
1

我有一个循环来创建代码来打印Unicode字符(我知道我还没有转换10-a等)。我的观点是,在循环构建Unicode字符串(在本例中为日文平假名)之后,我怎么才能在XCode中将其打印为可打印的字符,因为任何时候我尝试记录它或设置文本框值=即可。它只给了我的字符串。如何打印在Cocoa中字符串迭代创建的Unicode?

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'变量,使用'[的NSString stringWithCharacters:myChar长度:1]'从每个人做一个字符串,或用等效的UTF-8字节序列创建一个char数组,并使用[NSString stringWithUTF8String:myBytes]'。 '\ uNNNN'的替换可能会很快发生,以至于不能支持您似乎正在构建的“动态”序列。 – 2012-07-10 00:17:04

+0

@Kevin是对的:'@“\ uNNNN”'在编译时生效。 – 2012-07-10 00:18:52

+0

你能举一个例子来说明一个人骨头吗?我尝试了unichar变量,我似乎无法解决这个问题。 – Kevrone 2012-07-10 01:07:37

回答

0

以数字方式编写代码而不是尝试写入字符串。

例如,您p循环内:

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

你摇摆我的朋友,虽然我不得不翻转整数实体12343(ISH)而不是十六进制代码实体,但我仍然错过了unichar上的正确格式,这在我的结尾非常非常愚蠢。 – Kevrone 2012-07-11 22:50:15