昨天調試一個程序,需要在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 關注
- 352 瀏覽
添加回答
舉報
0/150
提交
取消