我需要找到一种方法,将用户键入的任意字符转换为ASCII表示形式,以便发送到网络服务。我目前的方法是创建一个查找字典并发送相应的代码。创建这个字典后,我发现很难维护并确定它是否完整:
__asciiKeycodes[@"F1"] = @(112);
__asciiKeycodes[@"F2"] = @(113);
__asciiKeycodes[@"F3"] = @(114);
//...
__asciiKeycodes[@"a"] = @(97);
__asciiKeycodes[@"b"] = @(98);
__asciiKeycodes[@"c"] = @(99);
有没有更好的方法从用户输入的任意键中获取ASCII字符代码(使用标准104键盘)?
答案 0 :(得分:1)
Objective C具有基本C原始数据类型。你可以做一个小技巧。您想将keyStroke设置为char
,然后将其转换为int
。 c中从char
到int
的默认转换是char
的ascii值。这是一个简单的例子。
char character= 'a';
NSLog("a = %ld", (int)test);
控制台输出= a = 97
换句话说,将int转换为char;
int asciiValue= (int)97;
NSLog("97 = %c", (char)asciiValue);
console output = 97 = a
或者,您可以在int或char的初始化中进行直接转换,并将其存储在变量中。
char asciiToCharOf97 = (char)97; //Stores 'a' in asciiToCharOf97
int charToAsciiOfA = (int)'a'; //Stores 97 in charToAsciiOfA
答案 1 :(得分:0)
这似乎适用于大多数键盘按键,不确定功能键和返回键。
NSString* input = @"abcdefghijklkmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*()_+[]\{}|;':\"\\,./<>?~ ";
for(int i = 0; i<input.length; i ++)
{
NSLog(@"Found (at %i): %i",i , [input characterAtIndex:i]);
}
答案 2 :(得分:-1)
使用stringWithFormat
调用并传递int值。