Swift: Problème Exportation base de données

voix
0

J'essaie d'exporter ma base de données. J'ai essayé par e-mail et en la partageant.

La chose est que je veux exporter l'état actuel de la base (avec toutes les informations qu'il contient).

J'ai essayé ce code:

func exportDatabase(){
    var url:String = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).last! as String
    url = url + /WalletDatabase.sqlite

    let fileManager = FileManager.default
    if fileManager.fileExists(atPath: url) {
        sendMail(sUrl: url)
    }else{
        print(error)
    }
}

func sendMail(sUrl:String){
    if( MFMailComposeViewController.canSendMail() ) {
        print(Can send email.)

        let fileManager = FileManager.default
        let mailComposer = MFMailComposeViewController()
        mailComposer.setToRecipients([***@gmail.com])
        mailComposer.mailComposeDelegate = self

        //Set the subject and message of the email
        mailComposer.setSubject(Lorem Ipsum)
        mailComposer.setMessageBody(Lorem Ipsum., isHTML: false)

        if let fileData = NSData(contentsOfFile: sUrl) {
            print(File data loaded.)
            mailComposer.addAttachmentData(fileData as Data, mimeType: application/x-sqlite3, fileName: WalletDatabase)
        }
        let fileData = fileManager.contents(atPath: sUrl)             
    } else {
        print(error)
    }

Mais :

  • L'envoi de fichier n'a pas de type
  • La base de données est vide, seule la table et col restent

Pourriez-vous les gars me donner un peu d'aide

Créé 19/12/2018 à 14:15
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
0

Je fixe en ajoutant ce code suivant:

    static func migrateStoreSwift() -> NSURL
{
    let lApp:AppController = UIApplication.shared.delegate as! AppController;
    let lCurrentStore:NSPersistentStore = lApp.persistentStoreCoordinator.persistentStores.last!
    let lNewDataBase = "Database.sqlite"
    let lNewStoreURL:NSURL = lApp.applicationDocumentsDirectory()?.appendingPathComponent(lNewDataBase) as! NSURL
    try! lApp.persistentStoreCoordinator.migratePersistentStore(lCurrentStore, to: lNewStoreURL as URL, options: nil, withType: NSSQLiteStoreType)
    return lNewStoreURL
}

Ce code crée une copie de la version actuelle de la base de données.

Créé 20/12/2018 à 08:40
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more