将NSInteger附加到NSMutableData

时间:2009-04-04 00:32:59

标签: objective-c

如何将NSInteger附加到NSMutableData。有些东西......

NSMutableData *myData = [[NSMutableData alloc] init];
NSInteger myInteger = 42;

[myData appendBytes:myInteger length:sizeof(myInteger)];

这样0x0000002A就会附加到myData。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:23)

传递整数的地址,而不是整数本身。 appendBytes:length:期望指向数据缓冲区的指针和数据缓冲区的大小。在这种情况下,“数据缓冲区”是整数。

[myData appendBytes:&myInteger length:sizeof(myInteger)];

但请记住,这将使用您的计算机的字节顺序对其进行编码。如果您计划将数据写入文件或通过网络发送,则应使用已知的字节序。例如,要从主机(您的计算机)转换为网络字节序,请使用htonl()

uint32_t theInt = htonl((uint32_t)myInteger);
[myData appendBytes:&theInt length:sizeof(theInt)];