Swift: Banco de Dados Exportando problema

votos
0

Eu estou tentando exportar meu banco de dados. Tentei por e-mail e, partilhando-o.

A coisa é que eu quero exportar o estado atual do banco de dados (com todas as informações nele).

Eu tentei este código:

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

Mas :

  • O envio de arquivos não possui qualquer tipo
  • A base de dados está vazia, apenas a tabela e col permanecem

Vocês poderiam me dar um pouco de ajuda

Publicado 19/12/2018 em 14:15
fonte usuário
Em outras línguas...                            


1 respostas

votos
0

Eu corrigi-lo adicionando este código a seguir:

    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
}

Este código cria uma cópia da versão atual do banco de dados.

Respondeu 20/12/2018 em 08:40
fonte usuário

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