Как я могу преобразовать значение NSString для iOS (target-c) в байтовое значение? - PullRequest
0 голосов
/ 07 ноября 2018

Как преобразовать значение NSString для iOS (target-c) в байтовое значение?

JAVA использует .getBytes(), но я не знаю, как это сделать на iOS.

uint8_t *dbytes = (uint8_t *)[Value bytes];

Я ожидал что-то вроде этого ... но я не хочу этого.

Ответы [ 3 ]

0 голосов
/ 07 ноября 2018

Не ясно, в какой кодировке вы ожидаете, что ваши результаты будут. Java getBytes() возвращает строковые байты, используя кодировку по умолчанию, которая зависит от платформы, поэтому вместо этого используйте getBytes(charsetname), предоставляя явно набор символов. Вы должны общаться, чтобы использовать определенную кодировку, чтобы избежать проблем взаимодействия.

На iOS вы можете использовать -[NSStrings dataUsingEncoding:]

, например

NSData *bytes = [@"Hello" dataUsingEncoding:NSUTF8StringEncoding];
0 голосов
/ 08 ноября 2018

Сначала используйте UTF8String translate to unsigned long, затем используйте 0xff & translate to Byte, как показано ниже:

NSString *str =@"xxx";
unsigned long red = strtoul([str UTF8String], 0, 16);
Byte bt = (Byte)(0xff & red);
0 голосов
/ 07 ноября 2018

Вы можете позвонить -[NSString UTF8String], чтобы изменить NSString на const char*.

Пример: const char *bytes = [Value UTF8String];

Ссылка: Документ Apple

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...