1

ファイルの名前を文字列として受け取り、メソッドの外部で宣言されたパスに追加する次のメソッドがあります。

-(BOOL)deleteFile:(NSString *)filename{

NSFileManager *fileManager = [NSFileManager defaultManager];

NSString *myPathDocs = [documentsDirectory stringByAppendingPathComponent:filename];
NSLog(@"[deleteFile] *myPathsDocs: %@", myPathDocs);

NSLog(@"[deleteFile] about to delete file");
//delete file
BOOL success = [fileManager removeItemAtPath:myPathDocs error:NULL];
NSLog(@"[deleteFile] success? %@", success);


return success;

ディレクトリからファイルを削除しますが、プログラムは戻ることも、ディレクトリに移動することもなくクラッシュします。

NSLog(@"[deleteFile] success? %@", success);

何か案は?私が見ていないのは明らかなことかもしれませんが、何度も目を通しましたが、すべてが順調に進んでいるようです.

4

1 に答える 1

3

変数successは BOOL 型で、%@書式指定子はオブジェクト用です。そのため、NSLog がブール値 (1 または 0) をポインターとして使用しようとすると、セグメンテーション違反でクラッシュします。使用する

NSLog(@"Success: %@", success ? @"YES" : @"NO");

代わりは。

于 2012-07-04T17:37:27.157 に答える