昨天调试一个程序,需要在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还是好的。
求解
因为第2个参数是BOOL *,是一个指针,而不是一个值。
正确的用法是