昨天调试一个程序,需要在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还是好的。求解
1 回答
慕的地8271018
TA贡献1796条经验 获得超4个赞
因为第2个参数是BOOL *,是一个指针,而不是一个值。
- (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory
正确的用法是
BOOL isDirectory; BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:path isDirectory:&isDirectory];if(fileExists && isDirectory) { ... }
- 1 回答
- 0 关注
- 250 浏览
添加回答
举报
0/150
提交
取消