const char *buf = [[hexstring text] UTF8String];
NSMutableData *data = [NSMutableData data];
if (buf)
{
uint32_t len = strlen(buf);
char singleNumberString[3] = {'\0', '\0', '\0'};
uint32_t singleNumber = 0;
for(uint32_t i = 0 ; i < len; i+=2)
{
if ( ((i+1) < len) && isxdigit(buf[i]) && (isxdigit(buf[i+1])) )
{
singleNumberString[0] = buf[i];
singleNumberString[1] = buf[i + 1];
sscanf(singleNumberString, "%x", &singleNumber);
uint8_t tmp = (uint8_t)(singleNumber & 0x000000FF);
[data appendBytes:(void *)(&tmp) length:1];
}
else
{
break;
}
}