обратный порядок байтов в NSData - PullRequest
0 голосов
/ 15 января 2011

никогда не делал этого (кроме школы).так что я полностью в темноте.

у меня есть данные (void *) и их размер (UInt32), поэтому я могу просто сделать что-то вроде

[NSData dataWithBytesNoCopy:data length:dataSize freeWhenDone:YES]

, чтобы получить экземпляр NSData(что мне нужно), но я хочу «нарезать» эти данные на блоки по 1 или 2 байта и перевернуть их порядок.

короткий пример был бы великолепен.

thx.

Ответы [ 2 ]

6 голосов
/ 15 января 2011

, если вы изо всех сил пытаетесь выяснить, что, черт возьми, происходит в байтах во время разработки,

typedef struct _SliceItUp
    {
    UInt8   a,b,c,d; // 4 x 8bits == 32 bits
    }
    SliceItUp;

SliceItUp dd;

[data getBytes:&dd length:sizeof(SliceItUp)];

NSLog(@"the four friends are %d %d %d %d", dd.a,dd.b,dd.c,dd.d);

Теперь у вас есть четыре байта индивидуально как четыре совершенно разных байта.

Вы имеете полный контроль и можете делать все, что захотите.

1 голос
/ 15 января 2011

Проверьте документацию для функций, определенных в NSByteOrder.h

...