Objective-C中的位转换工具

在iOS的objective-c库中是否有内置的实用程序或macros,这将允许您将字节转换为整数和整数?

请不要告诉我使用位移操作。 我试图避免编写自定义代码,如果它已经存在。

我想代码将NSData *转换为原始types(int,uint,short等),并将原始types转换回NSData *。

您可以通过访问bytes属性从NSData获取bytes 。 然后把它转换成指向你想要的任何types的指针。 显然你需要确保你知道你的NSData的内容和大小。

例如

 #include <CFByteOrder.h> // Bytes to uint32_t NSData *data = <THE_DATA>; void *bytes = [data bytes]; uint32_t *intBytes = (NSInteger*)bytes; uint32_t swapped = CFSwapInt32BigToHost(*intBytes); ///< If the data in `data' is big endian // uint32_t to bytes uint32_t someInt = 1234; uint32_t swappedInt = CFSwapInt32HostToBig(someInt); ///< If we want to store in big endian NSData *data = [NSData dataWithBytes:&swappedInt length:sizeof(swappedInt)]; 

我想你想要CFSwapInt32 *系列的function。

看苹果的文档 。

Interesting Posts