2010-03-17 52 views
0

你已經注意到今天,雖然編寫一個簡單的iPhone應用程序,Xcode有時會啓動一個新的文件夾在應用程序,而你仍然在同一個應用程序工作。Xcode,更改應用程序子文件夾?

/Users/Fuzzygoat/Library/Application Support/iPhone Simulator/User/Applications/4E5EF4F0-F410-46A6-888C-0D23BB97D2DC 

有誰知道是什麼原因導致的Xcode交換到一個新的app文件夾(即一個名爲 「4E5EF4F0-F410-46A6-888C-0D23BB97D2DC」)

EDIT_001:有一件事我已經注意到是我一直在做很多退出應用程序並重新開始檢查一組存檔方法,而這有時會造成混淆。有幾次它沒有找到保存的數據,我想這只是通過Xcode不斷運行模擬器的一個副作用。事情似乎很順利,如果我在沒有Xcode的模擬器上測試,一開始文件夾保持相同的名稱。

注意:我每次都使用NSSearchPathForDirectoriesInDomains來獲取文檔文件夾。

gary

回答

3

出於安全原因,iPhone OS將應用程序(包括其首選項和數據)限制爲文件系統中的唯一位置。此限制是稱爲應用程序「沙箱」的安全功能的一部分。沙箱是一組精細控制,限制應用程序訪問文件,首選項,網絡資源,硬件等。在iPhone OS中,應用程序及其數據駐留在其他應用程序無法訪問的安全位置。安裝應用程序時,系統會計算應用程序的唯一不透明標識符。使用根應用程序目錄和此標識符,系統構建應用程序主目錄的路徑。因此,應用程序的主目錄可以被描述爲具有以下結構:

/ApplicationRoot/ApplicationID/ 

在安裝過程中,系統會創建應用程序的主目錄和幾個關鍵的子目錄,配置應用程序沙箱中,並複製應用程序綁定到主目錄。爲每個應用程序及其數據使用唯一位置可簡化備份和還原操作,應用程序更新和卸載。有關爲每個應用程序創建的特定於應用程序的目錄以及有關應用程序更新和備份和還原操作的更多信息。

The Application Sandbox

2

我知道它發生在您重新啓動模擬器時。至少,那是我一定要觀察它的時候。

開發人員文檔告訴你,路徑可以在沒有警告的情況下更改,永遠不會依賴它。這是iPhone安全系統的一部分,它可以防止惡意應用程序使用硬編碼路徑來查找和利用系統資源。

+0

謝謝你,我用NSSearchPathForDirectoriesInDomains,我只是好奇,爲什麼我有多個文件夾,用各種不同的時間戳相同的應用程序 – fuzzygoat 2010-03-17 19:00:40

相關問題