62
задан 12 August 2017 в 15:33

9 ответов

Проблема - то, что файл не копируется в Ваш комплект приложений. Зафиксировать его:

  • Щелчок Ваш проект
  • Щелчок Ваша цель
  • Избранные Фазы разработки
  • Разворачивают Ресурсы Пакета Копии
  • Щелчок '+' и выбирают Ваш файл.
148
ответ дан 31 October 2019 в 13:10

Проверьте дважды Options в add files меню при добавлении файла. Цель в Add to targets должна быть отмечена для добавления его к пакету:

В случае, если Вы находитесь на самом деле в другом пакете (тест, например), используйте:

guard let fileURL = Bundle(for: type(of: self)).url(forResource: fileName withExtension:"txt") else {
        fatalError("File not found")
}
25
ответ дан 31 October 2019 в 13:10

Нажмите на свой файл на Вашей панели навигации и откройте Right Panel / Инспектор свойств.

enter image description here

Гарантируют, чтобы Вы добавили к целевому членству

12
ответ дан 31 October 2019 в 13:10

Вывод Swift 3.0

let fileNmae = "demo"

let path = Bundle.main.path(forResource: fileNmae, ofType: "txt")
    do {
        let content = try String(contentsOfFile:path!, encoding: String.Encoding.utf8)
        print(content)
    } catch {
        print("nil")
    }

SWift 2.0

do{
      if let path = NSBundle.mainBundle().pathForResource("YOURTXTFILENAME", ofType: "txt"){
             let data = try String(contentsOfFile:path, encoding: NSUTF8StringEncoding)
             let myStrings = data.componentsSeparatedByCharactersInSet(NSCharacterSet.newlineCharacterSet())
              print(myStrings)
       }
  } catch let err as NSError {
            //do sth with Error
            print(err)
  }

:

Hello Hems
Good Morning
I m here for you dude.
Happy Coding.
5
ответ дан 31 October 2019 в 13:10

А-ч, так же просто имел дело с той же самой проблемой как OP.

проблема состоит в том, что решения, учитывая здесь и здесь не работают, когда код выполняется в детской площадке, начиная с Options, меню add files выглядит по-другому для него, не показывает Add to targets поле:

enter image description here

, Когда в .playground файл, вместо этого нажмите Hide or show the Navigator кнопка на верхнем правом из Вашего окна Xcode (визуальное впечатление)-> enter image description here

Затем после того как Навигатор сворачивается открытый на левой стороне окна Xcode, просто перетащите & отбросьте свой файл к Resources каталог Вашей детской площадки.

, Если Ваша установка смотрит что-нибудь как следующий, что необходимо быть в порядке:

enter image description here

3
ответ дан 31 October 2019 в 13:10

Я добавил file.txt к своему проекту, и он был автоматически добавлен к Copy Bundle Files из моего проекта. Для меня я должен был удалить расширение из forResource, и оно работало.

let path = Bundle.main.path(forResource: "file", ofType: "txt") // not forResource: "file.txt"
2
ответ дан 31 October 2019 в 13:10

Та же проблема, немного отличающаяся ситуация & решение. Я следую учебному руководству, в котором было сказано для использования следующего кода:

    // Start the background music:
    if let musicPath = Bundle.main.path(forResource:
        "Sound/BackgroundMusic.m4a", ofType: nil) {
        print("SHOULD HEAR MUSIC NOW")
        let url = URL(fileURLWithPath: musicPath)

        do {
            musicPlayer = try AVAudioPlayer(contentsOf: url)
            musicPlayer.numberOfLoops = -1
            musicPlayer.prepareToPlay()
            musicPlayer.play()
        }
        catch { print("Couldn't load music file") }
    }
}

у меня была та же проблема как другие, но ни одно из решений не устранило проблему. После экспериментирования все, что я сделал, было, удаляют Звук от пути в следующем вызове, и все работало:

Bundle.main.path(forResource: "BackgroundMusic.m4a", ofType: nil)

казалось бы, что учебное руководство было по ошибке, говоря мне включать Звук в пути.

1
ответ дан 31 October 2019 в 13:10

Я думаю, что Вы не хотите inDirectory: метод. Попробуйте это вместо этого:

if let filepath = Bundle.main.path(forResource: "newTest", ofType: "txt") {
0
ответ дан 31 October 2019 в 13:10

Это было полезно для меня: XCode - копирует структуру папок в мой комплект приложений

, Mark "создает ссылочную опцию" папки, когда Вы создаете активы во вложенных папках.

Затем находят путь к файлу как это:

let path = Bundle(for: type(of : self)).path(forResource: "some_folder_a/some_folder_b/response.json", ofType: nil)
0
ответ дан 31 October 2019 в 13:10

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

Похожие вопросы: