На нем нет настоящей магии. Поскольку вы будете использовать ASCII, для преобразования int
char все, что вам нужно сделать, - это задание, как вы, возможно, уже знаете:
char a = 65; /* a contains 'A' */
NSString имеет очень удобный метод componentsSeparatedByString:
, который будет
вернуть массив строк, содержащий ваши номера, и вы можете получить int
из строки с помощью метода intValue
. Таким образом, все, что вам нужно сделать, это разделить
строку и итерацию по компонентам, присваивая их значение int
char массив. Вот пример функции, которая делает это:
NSString *
TextFromAsciiCodesString (NSString *string)
{
NSArray *components = [string componentsSeparatedByString:@" "];
NSUInteger len = [components count];
char new_str[len+1];
int i;
for (i = 0; i < len; ++i)
new_str[i] = [[components objectAtIndex:i] intValue];
new_str[i] = '\0';
return [NSString stringWithCString:new_str
encoding:NSASCIIStringEncoding];
}
И простое его использование с вашим примером "Hello"
:
NSString *string = @"72 101 108 108 111";
NSLog(@"%@", TextFromAsciiCodesString(string));
На самом деле, это немного по-другому, так как ваш пример был "Hell^K"
: -)