Impossible de compiler le modificateur de vue fileExporter dans SwiftUI
J'ai quelques difficultés à créer une fonctionnalité d'exportation pour mon projet de loisir. Je souhaite pouvoir exporter mes données au format JSON. Selon les FileDocument
capacités, cela devrait être exactement ce que je recherche.
J'ai rassemblé mon FileDocument et après avoir défini le modificateur de vue .fileExporter
et rempli les bonnes informations, il ne se compile pas.
Mon code ressemble à ceci:
struct YourData: View {
@ObservedObject var manager = Manager.shared
@State private var isShowingFileExporter = false
private var document: FileDocument? {
manager.retrieveData()
}
var body: some View {
List {
Text("Import Data")
Text("Export Data")
.onTapGesture {
isShowingFileExporter = true
}
}
.navigationTitle("Manage Your Data")
.navigationBarTitleDisplayMode(.inline)
.fileExporter(
isPresented: $isShowingFileExporter,
document: document,
contentType:.json,
onCompletion: { result in
switch result {
case let.success(url):
print("Data saved to: \(url)")
isShowingFileExporter = false
case let.failure(error):
print("Data failed to save with error: \(error.localizedDescription)")
isShowingFileExporter = false
}
}
)
}
}
L'erreur de compilation indique : no exact matches in call to instance method 'fileExporter'
Me manque-t-il une importation ou quelque chose ? J'importe seulement SwiftUI
et UniformTypeIdentifiers
.
Tous les conseils grandement appréciés.
Solution du problème
Le .fileExporter
type de document attendu est concret (pas un protocole FileDocument
), il doit donc être fourni
struct YourData: View {
@ObservedObject var manager = Manager.shared
@State private var isShowingFileExporter = false
private var document: YourFileDocument? { // << here!!
Commentaires
Enregistrer un commentaire