我有以下方法,它将文件的名称作为字符串,然后将其附加到在方法之外声明的路径。
-(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);
有什么想法吗?我认为这可能是一件显而易见的事情,我只是没有看到,但我已经多次仔细研究过,而且一切似乎都井然有序。
答案 0 :(得分:3)
变量success
的类型为BOOL,%@
格式说明符用于对象。因此,当NSLog尝试使用您的布尔值(1或0)作为指针时,它会因分段错误而崩溃。使用
NSLog(@"Success: %@", success ? @"YES" : @"NO");
代替。