Передайте адрес целого числа, а не само целое число. appendBytes:length:
ожидает указатель на буфер данных и размер буфера данных. В этом случае «буфер данных» является целым числом.
[myData appendBytes:&myInteger length:sizeof(myInteger)];
Имейте в виду, однако, что это будет использовать порядковый номер вашего компьютера для его кодирования. Если вы планируете записать данные в файл или отправить их по сети, вы должны использовать вместо этого известный порядок байтов. Например, чтобы преобразовать хост (ваш компьютер) в сетевую последовательность, используйте htonl()
:
uint32_t theInt = htonl((uint32_t)myInteger);
[myData appendBytes:&theInt length:sizeof(theInt)];