我目前正在创建此NSData对象。我想放入不同的NSString和UInt32类型的对象。我知道如何将NSString放入我的NSData对象,但我不知道如何使用UInt32标量类型来完成此操作。如何将UInt32标量类型编码为NSData对象
这是我用做它的NSString
- (void) constructRequest
{
NSString *mystring = [[NSString alloc] initWithString:[self addMethodName]];
UInt32 protocolInt = [self addProtocolVersion];
NSData* data=[mystring dataUsingEncoding:NSUTF8StringEncoding];
[data writeToFile:@"/Users/imac/Desktop/_dataDump.dat" atomically:YES];
}
不要那样做。这不是Endian安全的(PowerPC Mac和Intel Mac将以不同的方式读取它。) – 2012-02-24 01:28:51
hrmm。那么,如何让它在endian安全?目前我正在努力使它成为big-endian,我已经将结果输出到桌面上的.dat文件夹中,并用HexEdit打开以检查结果,并且当前将其作为大端序列读取。可以使这个安全。 – 2012-02-24 01:48:47
首先使用'CFSwapInt32HostToBig()'或'CFSwapInt32HostToLittle()'将字节交换为已知顺序。读入时,根据需要使用'CFSwapInt32BigToHost()'或'CFSwapInt32LittleToHost()'交换生成的整数。 – 2012-02-24 15:02:47