0

問題があります: 以下のコードを使用してNSDataからデータを取得しましたが、 [0;2048] バイトからデータを取得したいと考えています。私のデータ > 2048*ストロング テキスト* の場合は問題なく実行できますが、私のデータの場合は正しくありませdata < 2048ん。data < 2048そのため、十分な2048 バイトになったら、最後にスペースを追加したいと思います。手伝って頂けますか?本当にありがとう。

 NSData *data = [NSData dataWithBytes:[arrayText UTF8String] length:[arrayText lengthOfBytesUsingEncoding:NSUTF8StringEncoding]];
 NSData *datawrite = [data subdataWithRange:NSMakeRange(0, 2048)];

上記のコードは、MAC アプリがハングdata > 2048 bytesする場合に正常に動作します。data < 2048 bytes何か提案をください。前もって感謝します

4

1 に答える 1

0

わかりました。これにより、利用可能なバイト数 (最大 2048) が からコピーされますdata。結果が 2048 バイト未満の場合、新しいデータは 2048 バイトにパディングされます。

NSMutableData * datawrite = [ data subdataWithRange:(NSRange){ 0, MIN( 2048, data.length ) } ] mutableCopy ] ;
[ datawrite setLength:2048 ] ;

BUT: より広い用途について教えていただけますか? これは奇妙な使用例のように思えます。もっと理解したいと思います。

于 2013-08-30T05:06:41.187 に答える