UPGRADE YOUR SKILLS: Learn advanced Swift and SwiftUI on Hacking with Swift+! >>

SOLVED: Accessing Files from the Files App

Forums > Swift

Hey, I'm trying to load a .json file from the Files app into my app and trying to decode the .json file into a core data entry. I am having trouble importing the file as I get the error: The file “ ” couldn’t be opened because you don’t have permission to view it.. My code is as follows:

.fileImporter(isPresented: $importFile, allowedContentTypes: [.json]) { (result) in
            do {
                let jsonData = try Data(contentsOf: result.get())
                let decoder = JSONDecoder()
                decoder.userInfo[CodingUserInfoKey.context!] = dataManager.viewContext
                let _ = try decoder.decode(Recipes.self, from: jsonData)
                try dataManager.viewContext.save()
            } catch let error as NSError {
                fatalError("Error: \(error.localizedDescription)")
            }
        }

If anyone knows how to solve the error I would be very thankful. Thank you in advance.

5      

You can add the extra code below to your fileImporter completion closure.

let fileUrl = try result.get()

if fileUrl.startAccessingSecurityScopedResource() {
  // do-catch statement
}

fileUrl.stopAccessingSecurityScopedResource()

5      

BUILD THE ULTIMATE PORTFOLIO APP Most Swift tutorials help you solve one specific problem, but in my Ultimate Portfolio App series I show you how to get all the best practices into a single app: architecture, testing, performance, accessibility, localization, project organization, and so much more, all while building a SwiftUI app that works on iOS, macOS and watchOS.

Get it on Hacking with Swift+

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

Archived topic

This topic has been closed due to inactivity, so you can't reply. Please create a new topic if you need to.

All interactions here are governed by our code of conduct.

 
Unknown user

You are not logged in

Log in or create account
 

Link copied to your pasteboard.