开发者社区> 问答> 正文

iOS 文件路径报BAD_ACCESS

昨天调试一个程序,需要在Cache目录下新建子目录,代码如下

        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
        NSString *libDirectory = [paths objectAtIndex:0];
        NSString *path = [libDirectory stringByAppendingPathComponent:Kache_Objects_Disk_Path];
        if (! [[NSFileManager defaultManager] fileExistsAtPath:path isDirectory:YES]) {
            NSError *error;
            [[NSFileManager defaultManager] createDirectoryAtPath:path
                                      withIntermediateDirectories:YES
                                                       attributes:nil
                                                            error:&error];
            NSLog(@"error:%@", error);
        }
    }

结果在if判断的时候,path变量直接报BAD_ACCESS了,打印对象只有一段地址,没有内容了。但是字这行执行之前,path还是好的。
求解

展开
收起
a123456678 2016-07-20 14:46:19 1759 0
1 条回答
写回答
取消 提交回答
  • 因为第2个参数是BOOL *,是一个指针,而不是一个值。

    - (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory
    正确的用法是
    
    BOOL isDirectory;
    BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:path isDirectory:&isDirectory];
    if(fileExists && isDirectory) {
    ...
    }
    2019-07-17 19:58:52
    赞同 展开评论 打赏
问答分类:
问答地址:
相关产品:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载