Swift: Bundle.main.path возвращает ноль

Я создал папку в своих активах под названием «json», туда я перетащил файл с именем code.json из искателя. Теперь я хочу открыть файл, но

Bundle.main.path(forResource: "code", ofType: "json", inDirectory: "json")

просто возвращает nil.

Я также попытался поместить его в активы без подпапки и используя следующий способ

Bundle.main.path(forResource: "code", ofType: "json")

с тем же результатом.

Может кто-нибудь мне помочь? Что я делаю неправильно?

Содержит ли комплект .app файл, к которому вы хотите получить доступ? Является ли файл частью этапа сборки Copy Files?

Cristik 02.08.2018 10:46

Вы имеете в виду myProject-> Build Phases-> Copy Bundle Resources? Нет, не было. Я просто попытался добавить его, щелкнув по +, затем «Добавить другое», перешел в папку с моими активами, а затем в файл добавил его с помощью «Копировать элементы, если необходимо», но я получил тот же результат.

Ginso 02.08.2018 10:51

Я бы рекомендовал вместо этого перетаскивать из навигатора проекта xcode. Также после сборки перейдите в папку сборки и проверьте, действительно ли файл json развернут в пакете приложений.

Cristik 02.08.2018 10:55
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
3
2 925
2

Ответы 2

Вам нужно сделать ссылку на папку, когда вы перетаскиваете ее в xcode, ее цвет синий, а не желтый

//

Из вашего вопроса ясно, что вы пытаетесь добавить файл code.json в Assets.xcassets и пытаетесь получить к нему доступ с помощью Bundle.main.path (forResource:), который всегда будет возвращать ноль, потому что Assets.xcassets присутствует в Bundle и тогда ваш файл существует в нем.

Попробуйте добавить файлы непосредственно в проект, как было предложено в предыдущем ответе, подход правильный, Bundle.main.path (forResource: "code", ofType: "json")

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