Objective-C:文件管理器,删除文件时出错

时间:2012-07-04 17:35:26

标签: objective-c nsfilemanager

我有以下方法,它将文件的名称作为字符串,然后将其附加到在方法之外声明的路径。

-(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);

有什么想法吗?我认为这可能是一件显而易见的事情,我只是没有看到,但我已经多次仔细研究过,而且一切似乎都井然有序。

1 个答案:

答案 0 :(得分:3)

变量success的类型为BOOL,%@格式说明符用于对象。因此,当NSLog尝试使用您的布尔值(1或0)作为指针时,它会因分段错误而崩溃。使用

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

代替。