【发布时间】:2017-05-06 02:29:41
【问题描述】:
从我的 Mac OS 应用程序中,我尝试使用以下代码获取应用程序的当前目录,以便在应用程序包路径中生成日志文件。
NSString *path = [[[NSFileManager defaultManager] currentDirectoryPath] stringByAppendingPathComponent:@"TSPlogfile.txt"];
当我从 Xcode 运行应用程序时它运行良好,但发现 [[NSFileManager defaultManager] currentDirectoryPath] 在从 finder 运行 applicationxxx.app 时只返回 /。
后来我用[[[NSBundle mainBundle].bundlePath stringByDeletingLastPathComponent] stringByAppendingPathComponent:@"TSPlogfile.txt"];解决了这个问题
这在两种情况下都可以正常工作(从 Xcode 和 finder 运行应用程序)
你能解释一下为什么[[NSFileManager defaultManager] currentDirectoryPath] 在从 finder 运行应用程序时会失败吗?
【问题讨论】:
标签: objective-c nsfilemanager nsbundle