NSFileManagerのfileExistsAtPathでちょっとハマった
指定されたパスが存在して、ディレクトリかどうかしらべたかったので、以下のコードを書いた。
if([[NSFileManager defaultManager] fileExistsAtPath:NSHomeDirectory() isDirectory:YES]){ NSLog(@"指定されたパスは存在して、ディレクトリです。") ; }
エラーなどは出力されずに、アプリは落ちるようになった。
正しくは以下のように書く必要があった。
BOOL isDir = NO; if([[NSFileManager defaultManager] fileExistsAtPath:NSHomeDirectory() isDirectory:&isDir]){ if(isDir){ NSLog(@"指定されたパスは存在して、ディレクトリです。") ; } else { NSLog(@"指定されたパスは存在して、ディレクトリではありません。") ; } return ; }
たしかにreference見ると、第2引数はBOOLのポインタになってた。