将 NSData 字节顺序更改为小端

Hur*_*rkS 1 objective-c endianness nsdata ios

我试图找出更改我拥有的 NSData 对象的字节顺序的最佳方法。

这就是我创建它的方式

NSData *pillowData = [manufData subdataWithRange:NSMakeRange(5, 4)];
Run Code Online (Sandbox Code Playgroud)

这是枕头数据的输出

41543138
Run Code Online (Sandbox Code Playgroud)

这就是我想要的枕头数据在转换后的样子。

38315441
Run Code Online (Sandbox Code Playgroud)

基本上转换为小端。

rob*_*off 5

    NSData *manufData = [NSData dataWithBytes:"12345AT18" length:9];
    NSMutableData *pillowData = [[manufData subdataWithRange:NSMakeRange(5, 4)] mutableCopy];
    uint32_t *bytes = pillowData.mutableBytes;
    *bytes = CFSwapInt32(*bytes);
    NSLog(@"%@", pillowData);
Run Code Online (Sandbox Code Playgroud)

输出:

2018-01-25 15:52:39.067805-0600 test[23520:1338453] <38315441>
Run Code Online (Sandbox Code Playgroud)

请注意,这不会更改manufData. 它只更改pillowData.