0

我有这个代码:

NSCharacterSet *characterSet = [NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyz1234567890"];

NSLog(@"character set: %i", [characterSet characterIsMember:(unichar)"a"]);

当我期望它返回 1 时,NSLog 返回 0。我怎么做错了?

4

2 回答 2

4

您已将C 字符串(指向 的指针char)转换为unichar. 替换"a"'a'产生预期的结果:

NSLog(@"character set: %i", [characterSet characterIsMember:(unichar)'a']);
于 2013-05-05T12:18:02.140 回答
0

马丁完全正确;当您从 string 读取 unichar 时,现实生活中的情况是什么:

NSCharacterSet *characterSet = [NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyz1234567890"];
unichar character = [@"cba" characterAtIndex:2];
NSLog(@"character set: %d", [characterSet characterIsMember:character]);

在这种情况下,转换不是问题,characterAtIndex返回正确键入的字符。

于 2013-05-05T12:32:14.690 回答