NEW: Subscribe to Hacking with Swift+ and accelerate your learning! >>

URL to local Bundle.main always returns nil

Forums > Swift

Overview I’m doing a simple singing game for kids. The game just plays a video and shows three options. I was updating the videos, so I deleted it from the Assets.xcassets then added the new ones.

The problem

Now I’m getting this error:

Fatal error: Unexpectedly found nil while unwrapping an Optional value: file /Volumes/Documentos/Trabajo/Codigo proyectos/Currents/HANDSUP/diloEnSenas/SingsCategoryView.swift, line 69
2020-05-12 14:03:46.769427-0500 HandsUP[12221:549710] Fatal error: Unexpectedly found nil while unwrapping an Optional value: file /Volumes/Documentos/Trabajo/Codigo proyectos/Currents/HANDSUP/diloEnSenas/SingsCategoryView.swift, line 69

This is the code where I have the problem

struct video: View {
    var url: String

    var body: some View{
        VideoPlayerView(playerQueve: self.changeVideo(file: self.url))
    }

    func changeVideo(file: String) -> AVQueuePlayer {

        //let fileURL = file
        //let url = Bundle.main.url(forResource: fileURL , withExtension: "mp4")

        let url = Bundle.main.url(forResource: "color_1" , withExtension: "mp4")

        let playerItem = AVPlayerItem(url: url!)

        //set video

        let player = AVQueuePlayer(playerItem: playerItem)

        return player
    }
}

It was working fine before. So my first thought was that I’m not adding the files in the right way, but I checked it again and the buttons that are in the same folder as the videos are showing correctly.

Like you can see in the last image the button is showing well and the button image is in the same folder

also i check the build fase an the target also look good

Question

  • Why isn't it getting the file?
  • How can I debug the URL?

   

I always use "Create Groups" when dropping files to the project instead of "Create folder references". I actually don't know the difference, but I was taught this way and that "Create folder references" won't let you see the files.

   

Hacking with Swift is sponsored by Paw

SPONSORED Use Paw to build, test and describe web APIs. Paw has a lightning fast native macOS interface to compose requests, collaborate in real-time on API specs, and generate client code for your applications. You can import and export API definitions.

Discover Paw for Mac

Sponsor Hacking with Swift and reach the world's largest Swift community!

Reply to this topic…

You need to create an account or log in to reply.

All interactions here are governed by our code of conduct.

 
Unknown user

Not logged in

Log in
 

Link copied to your pasteboard.