2011-01-15 4 views
0

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

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

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

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

Короткий пример будет замечательным.

thx.

+0

Это звучит как проблема с энтианностью, я прав? –

+0

привет Клеменс! не могли бы вы отметить ответ, пожалуйста? – Fattie

ответ

1

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

6

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

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); 

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

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

Смежные вопросы