2010-03-23 73 views
4

我开发了一个与iPhone设备数据库相关的应用程序(SQlite数据库)。现在我想用更多功能更新该应用程序(我想推送相同应用程序的更新)。更新iphone应用程序行为

这里我更关心用户数据,同时推更新,所以我的问题是如果我会推更新,然后更新将清除存储在.sqlite文件中的所有数据?

如果是这种情况,那么如何推送应用程序更新而不修改数据库文件中的以前的数据?

请建议。

+0

在我的情况下,数据库结构根本不会修改。我关心的是用户是否已经在数据库文件中输入了一些记录,然后在更新应用程序时如何保留数据库文件中的以前记录?希望这是有道理的。 – Jim 2010-03-23 06:49:13

+0

这取决于数据库的保存位置,请参阅我的答案。 – christo16 2010-03-23 06:54:37

+0

这是这个问题的重复:http://stackoverflow.com/questions/1223696/how-the-application-upgrade-works-in-iphone和可能这一个:http://stackoverflow.com/questions/941479 /升级iphone应用程序通过itunes – 2010-03-23 14:59:47

回答

5

AFAIK文档目录在更新时保持不变。如果您将数据库存储在文档目录中,那么您应该没问题。如果它在应用程序的捆绑中,我认为没有多少可以保存它。

+0

感谢您的答复。所以你的意思是说,当应用程序第一次运行时,然后将数据库文件从资源复制到Documents目录。之后从文档目录加载数据库文件并对该文件执行操作。我对么?? – Jim 2010-03-23 06:56:38

+0

好吧,就像我说的那样取决于你的应用程序保存数据库的位置。如果它在文档文件夹中,那么如果在更新期间保持不动。如果您将其存储在应用程序的捆绑包中,那么在更新过程中将其完全删除(因为旧的二进制文件被替换为新的二进制文件)。不确定是否已将其存储在捆绑软件中的解决方法:/ – christo16 2010-03-23 07:16:49

+0

谢谢christo,我试图将数据库存储在Documents目录中,并且正如您所说的那样工作。再次感谢您的帮助和快速回复。 – Jim 2010-03-23 08:33:44