App 目錄結構與取得

1 篇文章 / 0 new
author
App 目錄結構與取得
► 那在開發過程中, 模擬器內App 目錄存放位置如何觀看呢
1. 首先須讓 Finder 可顯示隱藏檔, 此時於命令視窗輸入
defaults write com.apple.finder AppleShowAllFiles -bool true
2. 重啟Finder:滑鼠按一下視窗左上角的蘋果標誌-->強制退出-->Finder. 這樣再開啟 finder 就可以看見隱藏目錄與檔案

► 虛擬機資料存放位置如下
/Users/登入帳號/Library/Developer/CoreSimulator/Devices/xxxxxxxx-xxxx...[模擬器ID]
    /data/Containers
        /Bundle/Application/xxxxxxxx-xxxx...[AppId] <- 安裝程式
        /Data/Application/xxxxxxxx-xxxx...[AppDataId] <- 該程式的專屬資料存放區, 初始有下三個目錄
每個APP安裝後都置於一個Sandbox,在Sandbox,APP時都會有各自的目錄結構,其中存放著相關的設定檔存放以及下載檔案, 快取, 暫存檔等等, 每個App主要有三個私有目錄
Documents
Library
Caches
Preferences
tmp
• Documents 可以放一些使用者建立、下載的檔案或是程式需要用到的檔案,這個目錄會被itunes所備份,如果APP設計時有開啟Application supports iTunes file sharing,那麼就可利用itunes上傳檔案,預設上傳的目錄就會是這個目錄。
• Library APP會將主程式與一些資源分開存放,Library中會放置使用物件存取的設定檔內容或程式產生時的快取檔。
• tmp 當您的程式需要臨時建立暫存檔時就可以在這目錄使用,檔案內容會在機器重置時進行清除動作,itunes也不會去備份這個目錄。
 
► 程式中如何取得個目錄位置
NSBundle 操作
var bundlePath = NSBundle.mainBundle().bundlePath //App Package
var resourcePath = NSBundle.mainBundle().resourcePath //存在 App內檔案目錄
var executablePath = NSBundle.mainBundle().executablePath //執行檔位置
var infoPlistPath = NSBundle.mainBundle().URLForResource("Info", withExtension: "plist") //取得 app 內的 Info.plist 檔
App 可使用目錄
var homePath = NSHomeDirectory() //app root
var documentPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
var libraryPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.LibraryDirectory, NSSearchPathDomainMask.UserDomainMask, true)
var cachePath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.CachesDirectory, NSSearchPathDomainMask.UserDomainMask, true)
var tmpPath = NSTemporaryDirectory()
Free Web Hosting