読者です 読者をやめる 読者になる 読者になる

ほげほげ

プログラミング、英会話、ヨガ、料理などの備忘録など。

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のポインタになってた。