一、問題引出
1. 更新應(yīng)用程序時(shí),iTunes首先會將新APP安裝到新的應(yīng)用程序目錄下,然后將用戶數(shù)據(jù)文件轉(zhuǎn)移到新的目錄下,最后刪除老APP。過程中轉(zhuǎn)移的文件是Documents、Library/Preferences這兩個(gè)目錄下的,其他目錄下的文件不能保證一定會轉(zhuǎn)移。
2. 啟動頁的展示問題,一般應(yīng)用程序只展示一次,只需要在NSUserDefault保存是否展示過就可以了;但是在新版本APP更新時(shí)換了新啟動頁(沒換的情況不重新展示),這時(shí)不能因?yàn)橹鞍姹菊故具^了就不展示啟動頁(因?yàn)槔习姹締雍笠呀?jīng)展示了,在更新APP后NSUserDefault里面的還是之前的). 需要想一個(gè)辦法使啟動頁重新展示。
二、問題的解決
1. 對于第一個(gè)問題,看完下面的介紹就知道該怎么做了
常用目錄:
/AppName.app 這是程序包目錄,包含應(yīng)用程序的本身。
/Documents/ 您應(yīng)該將所有的應(yīng)用程序數(shù)據(jù)文件寫入到這個(gè)目錄下。這個(gè)目錄用于存儲用戶數(shù)據(jù)或其它應(yīng)該定期備份的信息。iTunes會備份這個(gè)目錄的內(nèi)容。
/Library/Preferences ? ? ? 這個(gè)目錄包含應(yīng)用程序的偏好設(shè)置文件。 iTunes會備份這個(gè)目錄的內(nèi)容。
/Library/Caches ? ? ? ? ? ? ?這個(gè)目錄用于存放應(yīng)用程序?qū)S玫闹С治募4鎽?yīng)用程序再次啟動過程中需要的信息。iTunes不對這個(gè)目錄的內(nèi)容進(jìn)行備份。
/tmp/ ? ? ? ?這個(gè)目錄用于存放臨時(shí)文件,保存應(yīng)用程序再次啟動過程中不需要的信息。iTunes不對這個(gè)目錄的內(nèi)容進(jìn)行備份。
2. 對于第二個(gè)問題,我解決方法是:
第一步: 版本號作為Key(比如Bool類型),存儲在NSuserDefault中。APP安裝后,key是不存在的,即進(jìn)入判斷是否需要顯示引導(dǎo)頁面,之后將此key保存起來(保證前面的判斷不會再進(jìn)入)。如果存在即直接跳過啟動頁,無需進(jìn)入判斷方法
第二步: 通過比較圖片的data可以做到
三、參考閱讀
1. http://blog.csdn.net/lzhgxiaoxiong/article/details/47172367
2. http://www.lxweimin.com/p/2d2745461e56