2013-05-05 114 views
0

我有这样的代码:CharacterInString没有产生预期的结果

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

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

的的NSLog返回0,当我希望它返回1,为什么我这样做不对?

回答

4

您已经蒙上了C字符串(一指针char)到unichar。 通过'a'更换"a"产生预期的结果:

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

马丁是完全真实的;什么可以成为现实生活中的情况,当你从字符串读你的单字符:

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

在这种情况下,铸造是不是一个问题,characterAtIndex返回正确输入字符。