iOS 8 之後的動態沙盒路徑

2021-07-11 15:36:36 字數 1199 閱讀 6231

在ios8之前,我們獲取到沙盒中的document、cache、tmp之後,下一次模擬器或真機無論重啟多少次,這具體的路徑是固定的,可是ios8 之後,你要是在按原來的路徑去找你想要的東西,我想它會把你坑的很慘.下面我就來說說自己的此次爬坑總結;

1>//獲取沙盒路徑

nsarray*path =nssearchpathfordirectoriesindomains(nsdocumentdirectory,nsuserdomainmask,yes);

nsstring*documentpath = [pathlastobject];

2>在ios8之後,蘋果可能考慮到安全因素,應用每一次重啟,沙盒路徑都動態的發生了變化。

ios8中第一次啟動時的路徑:

ios8中第二次啟動時的路徑:

2b080462-8330-440e-ac26-b9b15e065110/library/documents

從下劃線的部分可以明顯看出,兩次執行得到的沙盒路徑會發生改變,雖然ios8之後,沙盒的路徑發生了變化,但是並不代表你原來沙盒路徑中的資料發生了變化;同時,也並不代表路徑會越來越多.你一定有所顧慮了吧,下一次重啟後路徑變化了,那我們的資料/檔案去哪兒呢?

這個問題,你也完全沒必要去擔心,蘋果是不會坑你的,他會幫你處理;

1>蘋果會把你上乙個路徑中的資料轉移到你新的路徑中。

2>你上乙個路徑也會被蘋果毫無保留的刪除,只保留最新的路徑。

//獲取沙盒路徑後,你一定要注意,不要把沙盒路徑寫入你要儲存的地方,比如資料庫,如果你把documentpath路徑寫入資料庫,這樣你會很慘的,只要用每次執行程式後生成的

nsarray*path =nssearchpathfordirectoriesindomains(nsdocumentdirectory,nsuserdomainmask,yes);

nsstring*documentpath = [pathlastobject];發生了改變,你資料庫裡的路徑就會消失,你就無法找到你想要的資料,你只需要將你的檔名:比如像a.jpg,你想拿到你存進去的資料,就需要讓心生成的documentpath再拼上你自己的檔名比如 你的 a.jpg,這樣不管document路徑怎麼變,你都可以找到你的檔案;

iOS8 沙盒路徑變化特性

在我們的印象中乙個路徑獲取後,下一次再想進此路徑只需原路徑搜尋即可。但在ios8中,倘若再抱有此思想,我想只會碰壁。1.在ios8之前,我們獲取到沙盒中的document cache tmp之後,下一次模擬器或真機無論怎樣重啟,這具體的路徑是固定的了。下面我們以document為例介紹 比如上面是i...

iOS8 沙盒路徑變化特性

在我們的印象中乙個路徑獲取後,下一次再想進此路徑只需原路徑搜尋即可。但在ios8中,倘若再抱有此思想,我想只會碰壁。1.在ios8之前,我們獲取到沙盒中的document cache tmp之後,下一次模擬器或真機無論怎樣重啟,這具體的路徑是固定的了。下面我們以document為例介紹 比如上面是i...

iOS8 沙盒路徑變化特性

在我們的印象中乙個路徑獲取後,下一次再想進此路徑只需原路徑搜尋即可。但在ios8中,倘若再抱有此思想,我想只會碰壁。1.在ios8之前,我們獲取到沙盒中的document cache tmp之後,下一次模擬器或真機無論怎樣重啟,這具體的路徑是固定的了。下面我們以document為例介紹 比如上面是i...