我有一些关于涉及sqlite db的iphone应用更新的一般性问题.
使用新的更新,现有的sqlite db是否会被新的副本覆盖?
如果更新不涉及任何架构更改,那么用户应该能够使用其保存的数据重用现有数据库,对吗?(如果现有数据库没有被上面的1覆盖)
如果有一些架构更改,那么将数据从旧数据库传输到新数据库的最佳方法是什么?有人可以给我指导和示例代码吗?
ben*_*ado 20
仅更换应用包内的文件.如果数据库文件位于应用程序的Documents目录中,则不会替换它.(请注意,如果更改应用程序包中的文件,代码签名将不再有效,并且应用程序将无法启动.因此,除非您使用的是只读数据库,否则它必须位于Documents目录中.)
是.
什么是最好的取决于数据.您不会找到这样一般问题的示例代码.首先,您需要检测您的应用程序是否使用旧的数据库版本运行.然后你需要升级它.
要检查版本:
metadataa name和valuecolumn 的表.我用它来存储一些通用值,包括一个dataversion数字.我打开数据库时检查该号码,如果它小于当前版本,我会进行升级.升级:
sqlite3_exec给所有工作.(在交易中执行此操作,以防出现问题!)如果您的升级可能会运行很长时间(超过一秒),您应该显示一个升级屏幕,向用户解释发生了什么.
| 归档时间: |
|
| 查看次数: |
5999 次 |
| 最近记录: |