Пользователь вводит значение от 0 до 5000 в текстовое поле. Мне нужно заменить байты 4 и 5 в dataToSend с шестнадцатеричным значением в текстовом поле. Например, если пользователь вводит 250, я переводю это в 00FA. В dataToSend замените 0x03 0x00 и 0xEB на 0xFA. str и str2, поэтому я могу видеть данные. Между ними есть разница, и я не знаю, что правильно.Замена байтов в NSData шестнадцатеричными значениями
- (IBAction)handleConfig1DelayMoveChange:(id)sender
{
NSString *tmp;
int value;
tmp = [txtDelayBeforeMove1 stringValue];
NSString *hex = [NSString stringWithFormat:@"0x%04lX",(unsigned long)[tmp integerValue]];
NSString *hex1 = [NSString stringWithFormat:@"%04lX",(unsigned long)[tmp integerValue]];
dataToSend = [NSMutableData dataWithBytes:&((char[6]){0x51,0x04,0x02,0x03,0xEB,0x0D}) length:6];
NSString *str = [[NSString alloc] initWithData:dataToSend encoding:NSASCIIStringEncoding];
NSString *str2 = [NSString stringWithFormat:@"%.*s", [dataToSend length], [dataToSend bytes]];
tmp = @"";
tmp = [hex1 substringWithRange:NSMakeRange(1,2)];
value = [tmp intValue];
[dataToSend replaceBytesInRange: NSMakeRange(3,1) withBytes: &value];
str2 = [NSString stringWithFormat:@"%.*s", [dataToSend length], [dataToSend bytes]];
}