Преобразовать ключ NSString в массив из 2 байтов

Для проекта мне нужно отправить ключ по Bluetooth на устройство BLE.

Я получаю ключ от моего веб-сервиса как NSString. По примеру 1234

Теперь, что мне нужно отправить на устройство

Byte byteArray[] = {0x12, 0x34};

Есть ли кто-то, кто может дать мне пример кода, как я могу это сделать?

Спасибо

2 ответа

Мне, наконец, удалось сделать это, используя комбинацию webservice - xcode. Вместо того, чтобы отправлять весь ключ как одну строку, я разделил его и преобразовал первые 2 цифры в шестнадцатеричный код в PHP (на веб-сервисе).

Используя этот код, я создал правильный байтовый массив для отправки кода:

NSString *key1 = [message objectForKey:@"key1"];
NSString *key2 = [message objectForKey:@"key2"];
unsigned char byteArray[2];
byteArray[0] = [key1 intValue];
byteArray[1] = [key2 intValue];

Чтобы отправить строку в байтах, вы должны использовать следующий код:

NSString *yourString = @"1234";
NSData *data = [yourString dataUsingEncoding:NSUTF8StringEncoding];
NSUInteger len = [data length];
Byte *byteData = (Byte*)malloc(len);
memcpy(byteData, [data bytes], len);

Но 0x12 шестнадцатеричный равен 18 в десятичном.

Полезные ссылки:

Другие вопросы по тегам