Почему currentDirectoryPath возвращает разные результаты под IDE и без него?

У меня странная проблема с использованием приведенного ниже кода

NSString * pth = [[[NSFileManager defaultManager] currentDirectoryPath] copy];

Если этот код работает под IDE, он работает нормально, и у меня есть pth, как это

/Users/ пользователя /Desktop/iShutdown/ сборки / выпуска

Но если я запускаю этот код без IDE, просто запустив мое автономное приложение, я вижу в журнале, что pth содержит только "/"

Зачем? как получить такой же результат в автономном режиме?

1 ответ

Решение

Начальный рабочий каталог будет зависеть от того, как приложение запускается, и вы никогда не должны делать никаких предположений о том, что это будет. Для запусков Finder это обычно будет / как вы видели, в то время как для запусков Xcode это обычно будет тот же каталог, что и исполняемый файл (хотя вы можете изменить это в настройках для исполняемого файла). Существуют и другие способы запуска приложения, например, из командной строки, поэтому начальный рабочий каталог может быть практически любым, что хочет пользователь.

Если вы просто хотите найти какой-то определенный файл, который находится в определенном месте относительно вашего приложения, например, файл данных, который нужен вашему приложению, то вам просто нужно получить путь к вашему пакету приложений и использовать его, а не рабочий каталог.

Другие вопросы по тегам