現在このNSDataオブジェクトを作成しています。 NSStringとUInt32型の異なるオブジェクトを入れたいと思います。 NSStringをNSDataオブジェクトに入れる方法はわかっていますが、UInt32スカラー型でこれを行う方法はわかりません。NSntオブジェクトにUInt32スカラー型をエンコードする方法
これは私がだから私はそれを考え出した、と他の人がこの質問が回答されていることを見ることができるようにだけではなく、私の質問を更新するので、私は答えに入れます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];
}
はそれをしないでください。エンディアンセーフではありません(PowerPC MacとIntel Macはそれを別々に読むでしょう)。 –
hrmm。だから私はそれをエンディアンセーフにする方法は?私はそれをビッグエンディアンにしようとしています。デスクトップの.datフォルダに結果を出力し、結果を確認するためにHexEditで開きました。現在、ビッグエンディアンとして読み込んでいます。これを安全にすることができます。 –
'CFSwapInt32HostToBig()'または 'CFSwapInt32HostToLittle()'を使用して、それを既知の順序にバイトスワップします。それを読み込む際には、結果の整数を 'CFSwapInt32BigToHost()'や 'CFSwapInt32LittleToHost()'で適宜ネイティブ順序に戻してください。 –