Swift: Ärger Export von Datenbank

stimmen
0

Ich versuche, meine Datenbank zu exportieren. Ich habe per E-Mail versucht, und es teilt.

Die Sache ist, dass ich den aktuellen Zustand der Datenbank exportieren möchte (mit allen Informationen in it).

Ich habe diesen Code versucht:

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)
    }

Aber :

  • Die Datei senden haben keine Art
  • Die Datenbank ist leer, nur die Tabelle und die Spalte bleiben

Könnten Sie Jungs geben mir ein wenig Hilfe

Veröffentlicht am 19/12/2018 um 14:15
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
0

Ich fixiere es, indem Sie diesen Code ein:

    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
}

Dieser Code erstellen Sie eine Kopie der aktuellen Version der Datenbank.

Beantwortet am 20/12/2018 um 08:40
quelle vom benutzer

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