最近在做一个项目,里面牵扯到数据的更新问题。总结一下。
数据更新主要考虑到的问题:
1、版本的对照
2、网络问题
3、更新方案
对于版本对照,首先在服务器端应该设置一个版本标示。本人采用plist文件,然后在客户端通过dictionary获取版本号,与本地中的sqlite数据库中的版本号进行对照。不一致便开始更新。同时,这里需要考虑到的是网络和服务器问题。如果网络不同,或者服务器挂掉,均不能获得版本号。所以,网络上的版本号获取为null时,不更新数据。
对于网络问题,主要考虑到是没有网络时,采用了无网络时离线登陆,但不能更新数据
更新方案中,考虑到网络可能会不稳定。因此,更新过程中,首先将新数据下载到本地,并命名为临时数据。然后与网络中给出的数据大小进行对比,如果相同,则更新成功,这样就把原来的数据删除,将临时数据重命名为原来的数据名称。这样不会出现新的数据没更新完,原来的数据也没有了。
另外,在更新数据之前,必须对网络和服务器端的状态进行必要的测试,才能进行更新。
在更新数据中,必须先判断本地是否有临时文件,如果有,应该删除,负责,临时文件出错,将不能更新完成。
总结,在数据更新中,往往感觉比较简单,但是会涉及到各种不同的问题。在用户安装客户端以后,如果更新数据不能成功,而且没有了原来的数据,体验效果会很不好。因此更新数据必须考虑周全。