0

一部のデータをファイルに保存しようとしています。最初の反復でファイルを開き、情報を追加します。しかし、アルゴリズムが終了すると、ファイル サイズは 5kbs で、2.5 Mbs 程度になるはずです。

if (!isopen)
{
    NSArray *paths;
    paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    // Check DD
    if ([paths count] > 0)
    {
        NSLog(@"Found a path");
        fichero2 = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"out2.raw"];

        NSLog(@"path %@",fichero2);
    } else {
        //d'oh, something went really wrong
        NSLog(@"ERROR: could not open %s\n", "out.raw");
        return -1;
    }
    isopen = 1;
}
else 
{   
    // Write file
    NSMutableData *data = [NSMutableData dataWithLength:1152*2];
    [data appendBytes:((SInt16 *)[audioProcessor audioBuffer].mData) length:1152*2];
    [data writeToFile:fichero2 atomically:YES]; 
}

本当にファイルを閉じる必要がありますか? それは自動的に閉じますか?では、なぜデータが保存されないのでしょうか。

4

1 に答える 1

2

ループごとに新しい NSData を作成していると思いますが、

イテレーションのドープの外にあるはずですよね?

 NSMutableData *data = [NSMutableData dataWithLength:1152*2];

それから

      [data appendBytes:((SInt16 *)[audioProcessor audioBuffer].mData) length:1152*2];
      [data writeToFile:fichero2 atomically:YES];
于 2012-10-18T09:33:41.960 に答える