CharacterInString没有产生预期的结果

时间:2013-05-05 12:12:47

标签: objective-c nscharacterset

我有这段代码:

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

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

NSLog返回0,当我希望它返回1.我怎么做错了?

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:0)

马丁是完全正确的;当你从字符串中读取你的unichar时,这可能是一个真实的情况:

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

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