Преобразовать ключ 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
в десятичном.
Полезные ссылки: