昨天調(diào)試一個程序,需要在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);
}
}結(jié)果在if判斷的時候,path變量直接報BAD_ACCESS了,打印對象只有一段地址,沒有內(nèi)容了。但是字這行執(zhí)行之前,path還是好的。求解
1 回答

慕的地8271018
TA貢獻1796條經(jīng)驗 獲得超4個贊
因為第2個參數(shù)是BOOL *,是一個指針,而不是一個值。
- (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory
正確的用法是
BOOL isDirectory; BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:path isDirectory:&isDirectory];if(fileExists && isDirectory) { ... }
- 1 回答
- 0 關(guān)注
- 332 瀏覽
添加回答
舉報
0/150
提交
取消