gpt4 book ai didi

iphone - 如何从自身通过电子邮件发送 Iphone 应用程序的 sqlite 数据库?

转载 作者:行者123 更新时间:2023-11-29 11:08:32 26 4
gpt4 key购买 nike

在我当前的应用程序中,我添加了数据备份和恢复功能。用户可以创建数据库备份并可以通过电子邮件发送。在还原功能中,用户可以从电子邮件中导入数据库并替换当前的数据库。

我能够创建数据库文件的备份和恢复。在恢复中,我只是将文件从我的电子邮件复制到应用程序文档文件以替换当前文件。问题是在我的数据库备份代码中,sqlite 数据库被转换为 NSData。我不想被转换,需要通过电子邮件发送准确的 sqlite 文件。

这是我目前用于通过电子邮件发送 sqlite 数据库的代码

-(void)backUpData
{

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *txtPath = [documentsDirectory stringByAppendingPathComponent:@"/DemoApp.sqlite"];

NSURL *newUrl = [[NSURL alloc] initWithString:
[txtPath stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];

NSData *sqliteData = [[NSData alloc] initWithContentsOfURL:newUrl];

//send sqliteData to email composer delegate to attach it as attachment
[self showPicker:sqliteData];

}

如何在不将其转换为 NSData 的情况下通过电子邮件发送 sqlite 数据库?

最佳答案

在创建 NSData 对象时使用 dataWithContentsOfFile 提供路径而不是 url。例如:

NSString *dbPath = [[NSBundle mainBundle] pathForResource:@"Pubs" ofType:@"db"];
NSData *myData = [NSData dataWithContentsOfFile:dbPath];


[mailComposeVC addAttachmentData:myData mimeType:@"application/x-sqlite3" fileName:@"Pubs.db"];

关于iphone - 如何从自身通过电子邮件发送 Iphone 应用程序的 sqlite 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12640420/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com