iOS 保存用户文件时要考虑的APP迭代问题

一、问题引出

1. 更新应用程序时,iTunes首先会将新APP安装到新的应用程序目录下,然后将用户数据文件转移到新的目录下,最后删除老APP。过程中转移的文件是Documents、Library/Preferences这两个目录下的,其他目录下的文件不能保证一定会转移。

2. 启动页的展示问题,一般应用程序只展示一次,只需要在NSUserDefault保存是否展示过就可以了;但是在新版本APP更新时换了新启动页(没换的情况不重新展示),这时不能因为之前版本展示过了就不展示启动页(因为老版本启动后已经展示了,在更新APP后NSUserDefault里面的还是之前的). 需要想一个办法使启动页重新展示。

二、问题的解决

1. 对于第一个问题,看完下面的介绍就知道该怎么做了

常用目录:
/AppName.app      这是程序包目录,包含应用程序的本身。
/Documents/       您应该将所有的应用程序数据文件写入到这个目录下。这个目录用于存储用户数据或其它应该定期备份的信息。iTunes会备份这个目录的内容。
/Library/Preferences       这个目录包含应用程序的偏好设置文件。  iTunes会备份这个目录的内容。
/Library/Caches              这个目录用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。iTunes不对这个目录的内容进行备份。
/tmp/        这个目录用于存放临时文件,保存应用程序再次启动过程中不需要的信息。iTunes不对这个目录的内容进行备份。

2. 对于第二个问题,我解决方法是:

第一步: 版本号作为Key(比如Bool类型),存储在NSuserDefault中。APP安装后,key是不存在的,即进入判断是否需要显示引导页面,之后将此key保存起来(保证前面的判断不会再进入)。如果存在即直接跳过启动页,无需进入判断方法

第二步: 通过比较图片的data可以做到

三、参考阅读

1. http://blog.csdn.net/lzhgxiaoxiong/article/details/47172367
2. http://www.jianshu.com/p/2d2745461e56

你可能感兴趣的:(iOS 保存用户文件时要考虑的APP迭代问题)