来自NSData的Int

Cha*_*sha 3 iphone objective-c

我有一个长度为4个字节的NSData对象.我知道这4个字节构造了一个正整数.我该如何从那些NSdata对象中获取int?

dra*_*ard 12

如果您知道endianness与当前系统匹配:

x = *(const UInt32 *)[theData bytes];
Run Code Online (Sandbox Code Playgroud)

如果您知道字节顺序是向后的,请按照以下步骤操作:

x = Endian32_Swap( x );
Run Code Online (Sandbox Code Playgroud)

如果您不确定源和目标字节序,则应该找到另一种传递数据的方法.

  • 如果你知道源是big-endian,你可以使用`EndianU32_BtoN`(或`EndianS32_BtoN`签名),如果你知道它是little-endian,你可以使用`EndianU32_LtoN`.这意味着您不必知道正在运行的系统的字节顺序. (2认同)