コードは次のとおりです。
NSString * str = [[NSString alloc] initWithFormat:@"abcdefgh"];
void * pbuffer = malloc(128);
memset(pbuffer, 0, 128);
NSUInteger nsu;
NSRange range = NSMakeRange(0, 128);
[str getBytes:pbuffer maxLength:128 usedLength:&nsu encoding:NSUnicodeStringEncoding options:0 range:range remainingRange:nil];
NSString * str2 = [[NSString alloc] initWithBytes:pbuffer length:128 encoding:NSUnicodeStringEncoding];
次に、文字列 str と str2 の結果が異なることがわかります。バッファはまだ正しく、メモリは「61 00 62 00 ....」のようになっています。そして、str2 のメモリは「00 61 00 62 ....」のようになります。
私のテストコードの問題は何ですか?
ありがとう!