Я пытаюсь получить путь к ресурсу в инструменте командной строки в Xcode (8 бета-версия 2). Вот что у меня есть:
- Ресурс file.xyz был перенесен в проект, и целевое членство соответствует основному проекту.
- В разделе «Фазы сборки» -> «Копировать файлы» в качестве места назначения указано «Ресурсы», а подпуть пуст. Флажок «Копировать только при установке» снят, а file.xyz указан в таблице ниже.
В моем файле main.swift у меня есть следующий код:
guard let filePath = Bundle.pathForResource("file", ofType: "xyz", inDirectory: "Resources") else{ fatalError("Could not find file") }
fatalError
срабатывает каждый раз. Любые идеи? Я понимаю, что инструменты командной строки не имеют пакета приложений, и поэтому вместо этого ресурс копируется в папку «Ресурсы», но мой аргумент inDirectory
— это немного дикая догадка… Спасибо за чтение.
РЕДАКТИРОВАТЬ: Моя основная цель — получить доступ к файлу ресурсов (в данном случае текстовому файлу) из CLT — я не привязан к этому конкретному способу сделать это, поэтому, если есть альтернативный подход, это тоже здорово!
Bundle.main()
этоnil
!), откуда должна взяться папкаResources
или где она должна находиться? ПараметрinDirectory
указывает допустимую подпапку папкиResources
в комплекте. - person vadian   schedule 17.07.2016(NS)Bundle
- person vadian   schedule 17.07.2016Info.plist
в интерфейс командной строки, но я не знаю, как получить к нему доступ. - person vadian   schedule 17.07.2016Bundle
: другими словами,Bundle.main
возвращает допустимый пакет для каталога, содержащего исполняемый файл командной строки.Bundle.main.resourceURL
возвращает URL родительского каталога.Bundle.main.pathForResource("file", ofType:"xyz")
вернет допустимый путь при условии, чтоfile.xyz
скопирован в тот же каталог, что и инструмент командной строки. - person NSGod   schedule 17.07.2016Bundle.main
иBundle.main.resourceURL
указывают каталог, содержащий двоичный файл командной строки. Я не уверен, как получить доступ к другим файлам. - person Jay Wong   schedule 09.02.2018