bastante nuevo desarrollador de iPhone aquí. Creación de una aplicación para enviar comandos RS232 a un dispositivo que los espera a través de una conexión de socket TCP/IP. Tengo la parte de comunicaciones baja, y puedo enviar comandos ASCII bien. Son los comandos del código hexadecimal con los que estoy teniendo problemas.Convertir cadena de datos hexadecimales a NSData en Objective C (cocoa)
lo que permite decir que tengo los siguientes datos hexadecimales para enviar (en este formato):
\ X1c \ x02d \ x00 \ x00 \ x00 \ xFF \ x7F
¿Cómo puedo convertir esto en una Objeto NSData, que mi método de envío espera?
Obviamente, esto no funciona para estos datos hexagonales (pero lo hace para los comandos estándar ASCII):
NSString *commandascii;
NSData *commandToSend;
commandascii = @"\x1C\x02d\x00\x00\x00\xFF\x7F";
commandToSend = [commandascii dataUsingEncoding:NSStringEncoding];
Para empezar, algunos de los \ x códigos hexadecimales son los caracteres de escape, y me da un "insumo conversión detenida ... "advertencia al compilar en XCode. Y NSStringEncoding obviamente no es el adecuado para esta cadena hexadecimal tampoco.
Así que el primer problema es cómo almacenar esta cadena hexadecimal, supongo, y cómo convertir a NSData.
¿Alguna idea?
Gracias por todas las respuestas, todos han sido de gran ayuda y yo ¡he aprendido mucho! Construí el código anterior, que es un poco una amalgama involuntaria de algunas de las respuestas. Esto funciona para cadenas como "00 3c 5f 22 ef 00 00 ff" que resulta que puedo obtener en lugar del estilo \ x. ¡Gracias de nuevo por toda la ayuda! –