получить код ascii из строки в xcode для приложения iphone - PullRequest
0 голосов
/ 07 февраля 2012

эй, просто пара вопросов о написании моего первого приложения для ios.Я искал здесь вопросы, но все они, кажется, решают вопросы более продвинутые, чем мои, поэтому я запутался.

(1) Все, что я хочу сделать, это превратить строку в массив целых чисел, представляющих код ASCII.Другими словами, я хочу преобразовать:

"This is some string. It has spaces, punctuation, AND capitals."

в массив с 62 целыми числами.

(2) Как мне вернуться из NSArray в строку?

(3) Кроме того, являются ли эти дорогостоящие операции с точки зрения памяти или времени вычислений?Кажется, что это может быть так, если нам нужно создавать новую переменную на каждой итерации или что-то в этом роде.

Я знаю, как объявить все переменные, и я предполагаю, что я запускаю цикл по длине строки и на каждомитерация Я каким-то образом получаю символ и преобразую его в число с помощью некоторого вызова встроенной команды.

Спасибо за любую помощь, которую вы можете предложить, или ссылки на посты, которые могут помочь!

Ответы [ 3 ]

2 голосов
/ 07 февраля 2012

если вы хотите сохранить значения ascii в nsarray, это будет дорого.NSArray может содержать только объекты, поэтому вам придется создавать NSNumber для каждого значения ASCII:

<code>
unsigned len = [string length];
NSMutableArray arr = [NSMutableArray arrayWithCapacity:len];
for (unsigned i = 0; i < len; ++i) {
   [arr addObject:[NSNumber numberWithUnsignedShort:[string characterAtIndex:i]]];
}
2), чтобы вернуться к NSString, вам нужно будет использовать MSMutableString и добавить каждый байт к NSMutableString.,

Сказав, что я предлагаю вам не использовать этот метод, если вы можете избежать его.

Лучше было бы использовать ответ @ EmilioPelaez.Вернуться из буфера памяти в строку NSSt просто и недорого по сравнению с итерацией и конкаталированием строк.

<code>
NSString * stringFromMemory = [[NSString alloc] initWithBytes:buffer length:len encoding: NSASCIIStringEncoding];
1 голос
/ 19 марта 2012

Я использовал синтаксис, который нашел здесь. Спасибо за помощь

Как преобразовать значение ASCII в символ в Objective-C?

0 голосов
/ 07 февраля 2012

У NSString есть метод для получения символов в массиве:

NSString *string = "This is some string. It has spaces, punctuation, AND capitals.";

unichar *buffer = malloc(sizeof(unichar) * [string lenght]);

[string getCharacters:buffer range:NSMakeRange(0, [string length])];

Если вы проверите определение unichar, это шорт без знака.

...