2> data container:
// 獲取 documents 路徑
let documentpath:string? = nssearchpathfordirectoriesindomains(.documentdirectory,
.userdomainmask,
true)
.last
let documenturl:nsurl? = nsfilemanager.defaultmanager().urlsfordirectory(.documentdirectory,
indomains: .userdomainmask)
.last
(2) library:
// 獲取 library 路徑
let librarypath:string? = nssearchpathfordirectoriesindomains(.librarydirectory,
.userdomainmask,
true)
.last
let libraryurl:nsurl? = nsfilemanager.defaultmanager().urlsfordirectory(.librarydirectory,
indomains: .userdomainmask)
.last
// 獲取 caches 路徑
let cachespath:string? = nssearchpathfordirectoriesindomains(.cachesdirectory,
.userdomainmask,
true)
.last
let cachesurl:nsurl? = nsfilemanager.defaultmanager().urlsfordirectory(.cachesdirectory,
indomains: .userdomainmask)
.last
(3) tmp:
// 獲取臨時檔案路徑
let tmppath:string = nstemporarydirectory()
2)ios 中同乙個應用在不同的手機中分配的路徑可能是不同的,所以我們無法通過硬編碼指定完整路徑名來找到對應檔案。foundation 框架提供了一組專門的介面來獲取應用沙箱不同位置的目錄路徑。
// 獲取使用者主路徑
public func nshomedirectory() -> string
// 獲取臨時檔案路徑
public func nstemporarydirectory() -> string
// 獲取滿足條件的路徑列表
public func nssearchpathfordirectoriesindomains(directory: nssearchpathdirectory,
_ domainmask: nssearchpathdomainmask,
_ expandtilde: bool) -> [string]
public class nsbundle : nsobject
應用程式 bundle 的配置資訊都存在 info.plist 檔案中。它裡面各項都以 key-value 的形式進行描述,包括了應用程式唯一標識名、版本號、可執行檔名等資訊。
bundle 配置資訊主要引數:
key友好顯示名
value
cfbundledisplayname
bundle display name
程式的應用名,安裝後顯示在桌面上的那個名稱,可以進行本地化設定
cfbundleexecutable
executable file
應用可執行程式的名稱
cfbundleidentifier
bundle identifier
應用程式的唯一標識
cfbundleversion
bundle version
應用編譯版本號
cfbundleshortversionstring
bundle version string, short
應用 release 發布版版本號
bundle 常見問題
專案裡面的某個資源檔案(比如 plist、音訊等)無法使用
獲取 nsbundle 資源
// 獲得 bundle 資訊
/**/
let mainbundle = nsbundle.mainbundle()
// 獲取 bundle 檔案路徑
let bundlepath:string = nsbundle.mainbundle().bundlepath
let resourcepath:string? = nsbundle.mainbundle().resourcepath
// 獲取 bundle url 路徑
let bundleurl:nsurl = nsbundle.mainbundle().bundleurl
let resourceurl:nsurl? = nsbundle.mainbundle().resourceurl
// 獲得 bundle 目錄下的檔案路徑
let filepath1:string = nsbundle.mainbundle().pathforresource("test", oftype: "txt")!
// bundle 下子目錄 indirectory 下的檔案路徑
let filepath2:string = nsbundle.mainbundle().pathforresource("test", oftype: "txt", indirectory: "testfolder")!
// 獲得 bundle 目錄下的 url 路徑
let fileurl1:nsurl = nsbundle.mainbundle().urlforresource("test", withextension: "txt")!
// bundle 下子目錄 subdirectory 下的 url 路徑
let fileurl2:nsurl = nsbundle.mainbundle().urlforresource("test", withextension: "txt", subdirectory: "testfolder")!
// 獲取應用程式唯一標識包名
let indentifier:string? = nsbundle.mainbundle().bundleidentifier
// 獲取應用程式 info.plist 配置項詞典物件例項
let info = nsbundle.mainbundle().infodictionary
// 獲取某一特定欄位的內容
let bundleid:anyobject? = nsbundle.mainbundle().objectforinfodictionarykey("cfbundlename")
public class nsurl : nsobject, nssecurecoding, nscopying, nsurlhandleclient
public class nsurlcomponents : nsobject, nscopying
資料持久化
資料持久化就是將記憶體中的資料模型轉換為儲存模型,以及將儲存模型轉換為記憶體中的資料模型的統稱.資料模型可以是任何資料結構或物件模型,儲存模型可以是關係模型 xml 二進位製流等。cmp和hibernate只是物件模型到關係模型之間轉換的不同實現。只不過物件模型和關係模型應用廣泛,所以就會誤認為資料...
資料持久化
首先是cocos2d x自己封閉的ccuserdefault跨平台的檔案儲存類,它是用的xml格式,具體操作非常類似於應用開發的ini檔案,可操作性不是很強,如果訪問比較複雜的資料,那就得自己動手去解析乙個字串,下面是示例 基本一看就懂 void userdefaulttest dotest els...
資料持久化
資料持久化是通過檔案將資料儲存在磁碟上 ios有四種資料持久化方式 1.屬性列表 property list 簡單易用,適合小資料量的儲存和查詢操作,但是不適合大量資料的儲存.屬性列表 1屬性列表 property list nsarray plist name age 指定儲存的地方 nsstri...