NSMutableDataとは
NSMutableDataの主な用途はNSDataと同じくバイナリデータの格納です。ただしこちらは可変長であるため、 アプリケーション内部で作成したデータを格納するのに向いています。NSDataにあるメソッドも全て使えます。
代表的なメソッド(目的別)
新しいNSMutableDataを作りたい - initWithLength:
現在のデータの末尾にデータを追加したい - appendData:
新しいNSMutableDataを作りたい - initWithLength:
- (id)initWithLength:(NSUInteger)length
lengthで指定した長さのNSMutableDataを作成します。作られたデータの中は全て0が入っています。下にある例は長さが0、つまりは空のNSMutableDataを作っています。 実質的には[[NSMutableData alloc] init]と同じです。
NSMutableData *newData = [[NSMutableData alloc] initWithLength:0];
現在のデータの末尾にデータを追加したい - appendData:
- (voide)appendData:(NSData *)otherData
下の例はNSDataのsubdataWithRange:に書かれているコードと逆に、ファイルを小分けにして読み込む部分のコードの一部です。loadRangeがNSRange型のメンバ変数、 loadLengthが読み込むファイルの大きさを格納しているNSUInteger型のメンバ変数です。loadDataに読み込んだデータを追加してゆくことでサイズの大きなファイルでも 読み込めるようにしようという意図で作成したコードです。
NSData *lData;
if(loadRange.location + 32768 < loadLength) {
lData = [fileHandle readDataOfLength:kMyBufferSize];
} else {
lData = [fileHandle readDataToEndOfFile];
}
[loadData appendData:lData];