1

我需要针对我公司正在构建的应用程序中的功能的解决方案。这是一款适用于 iPhone 和 iPad 的 IOS 应用程序,我们仅支持 ios5 及更高版本。

我们需要的最终结果是用户点击设置区域内的一个按钮,该按钮干净地转储应用程序内部数据库,将其附加到电子邮件中,供用户发送给他们想要的任何人。

附加到电子邮件不是问题。我担心的是,是否有理由认为将 sqlite 数据库的副本作为附件导出到电子邮件中会给用户留下可用的数据库副本。我的客户群不擅长备份,但数据对他们来说仍然非常重要。

sqlite 数据库的热导出是否可用,即是否支持,或者数据库有时/总是会损坏?

请记住,所有这些功能所要做的就是使可用的数据库副本离开设备并安全地离线存储,这样我就可以通过使用 iExplorer 将数据库复制回设备来引导他们完成恢复数据库或电话查看。

未来我们计划添加强大的导出和导入功能,但目前我们正在寻找一种可以在一天或更短的时间内实施的解决方案。

提前感谢任何人的输入和喘息一些objective-c代码,这些代码将转储一个干净的sqlite数据库副本,以使数据库可用且不会损坏。

4

1 回答 1

0

您不需要制作数据库的热副本。当用户选择应用程序的备份功能时,关闭数据库,复制文件,然后重新打开数据库。您现在可以将复制的文件附加到电子邮件中。

我的应用程序中有一个功能可以做到这一点。我从来没有遇到过数据库文件损坏的问题。只要没有活动的事务在运行,sqlite 文件应该可以复制,尤其是在没有打开的句柄的情况下。

另一种选择是使用sqlite3_backup_init和相关的功能来复制数据库。

于 2012-12-05T23:34:03.850 回答