3

iPhone アプリケーションでは、バイナリ データをファイルに追加する必要があります。

 NSError *error;
    NSFileManager *fileMgr = [NSFileManager defaultManager];

    NSData* data = [NSData dataWithBytes:buffer length:readBytes_];    
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0]; 

    NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"myFile"];

    NSFileHandle *myHandle = [NSFileHandle fileHandleForUpdatingAtPath:appFile];
    [myHandle seekToEndOfFile];
    [myHandle writeData: data];
    [myHandle closeFile];
   // [data writeToFile:appFile atomically:YES];

    // Show contents of Documents directory
    NSLog(@"Documents directory: %@",
          [fileMgr contentsOfDirectoryAtPath:documentsDirectory error:&error]);

しかし、NSlog には、自分のファイルがあることがわかりません。なにが問題ですか?

4

1 に答える 1

3

ファイルが存在しない場合は、[NSFileHandle fileHandleForUpdatingAtPath:]戻りnilます(ドキュメントを参照)。

したがって、ファイルを開いて必要に応じて作成する前に、次のことを確認してください。

NSFileManager *fileMan = [NSFileManager defaultManager];
if (![fileMan fileExistsAtPath:appFile])
{
    [fileMan createFileAtPath:appFile contents:nil attributes:nil];
}
NSFileHandle *myHandle = [NSFileHandle fileHandleForUpdatingAtPath:appFile];
// etc.

そして、さらにエラーチェックを追加します。

于 2013-02-22T13:42:46.737 に答える