NSBundle路徑問題

2021-07-04 08:57:54 字數 859 閱讀 7610

先上圖

上面是乙個程式檔案的主要路徑圖,我們平時獲取預設路徑或者儲存檔案路徑的兩種方式:

nsstring * bundlepath = [[nsbundle mainbundle]resourcepath]
nsstring* documentpath = [nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes)lastobject];
這兩者什麼區別呢?從路徑上看,乙個在bundle目錄下,乙個在data目錄下,從上圖看,bundle目錄最後是當前的執行程式,程式其實是就是個「bunlde」,可以以檔案方式開啟程式,裡面存放的是除了**外的資源檔案,包括plist,storyboard等,也就是說,以資源為主。

另乙個data目錄,最後目錄如下:

可以看到,這就是所謂的」沙箱」目錄,即只允許自己的程式訪問,別的程式不允許訪問,主要是用來儲存資料和備份的。

這就是兩個路徑的區別,個人理解,bundle下的資源是即時訪問的,data下的資料是可以間斷呼叫的,正是因為這種區別,所以我們一般會將bundle下的資料檔案copy到data/documents/下,方便對其進行讀寫,網上說是因為bundle中檔案只能讀不能寫,這點筆者專門test了一下,證明是可以寫的。

NSBundle 獲取檔案路徑

之前在初始化乙個類的時候 testviewcontroller viewcontroller testviewcontroller alloc initwithnibname testviewcontroller bundle nsbundle mainbundle 不是很明白 nsbundle m...

NSBundle 獲取檔案路徑為空

nsstring filepath nsbundle mainbundle pathforresource test.m2 oftype nil 執行後filepath是空的,但是已經把這個檔案加到xcode中了,上網查了下發現由於當時是直接拖進去的,沒有新增到資源檔案路徑,需要採用add file...

NSBundle方法獲取不到資源路徑

ios問題筆記 nsbundle mainbundle pathforresource oftype 方法獲取不到資源路徑 ios開發在一次使用資料庫檔案時 nsstring filepath nsbundlemainbundle pathforresource city oftype sqlite...