Podaj adres liczby całkowitej, a nie samą liczbę całkowitą. appendBytes:length:
oczekuje wskaźnika na bufor danych i rozmiar bufora danych. W tym przypadku "bufor danych" jest liczbą całkowitą.
[myData appendBytes:&myInteger length:sizeof(myInteger)];
Należy jednak pamiętać, że do zakodowania tego będzie używana endomancja komputera. Jeśli planujesz zapisywanie danych w pliku lub wysyłanie go przez sieć, powinieneś użyć znanej endianness. Na przykład, aby przekonwertować z hostem (urządzenie) do endianness sieci użyj htonl()
:
uint32_t theInt = htonl((uint32_t)myInteger);
[myData appendBytes:&theInt length:sizeof(theInt)];
Dzięki za cynk na ntohl(), to jest wysyłanych przez sieć :) – holz
Thanks a lot to mi pomoże – akin