NSBundle 的理解和 mainBundle 類方法詳解,nsbundlemainbundle

NSBundle 的理解和 mainBundle 類方法詳解,nsbundlemainbundle

??吹筋愃频?/p>

NSString *file = [[NSBundle mainBundle] pathForResource:name ofType:nil];
這樣的代碼,來產(chǎn)生 file 的完全路徑。

那么它是什么東西呢:先看 NSBundle 類,直接繼承NSObject類。

這個類的對象,代表了 app 中代碼和資源的文件在文件系統(tǒng)里所在的位置,通俗的說,就是定位了程序使用的資源(代碼,圖形,音樂等數(shù)據(jù))在文件系統(tǒng)里的位置,并可以動態(tài)的加載、or卸載掉可執(zhí)行代碼。

我們的程序是一個bundle. 在Finder中,一個應用程序看上去和其他文件沒有什么區(qū)別. 但是實際上它是一個包含了nib文件,編譯代碼,以及其他資源的目錄. 我們把這個目錄叫做程序的main bundle,在 xcode 里,使用應用程序、框架、or 插件的時候,xcode 會生成對應的資源的目錄包。

類方法:

mainBundle 方法詳解

  • (NSBundle *)mainBundle
    返回一個 NSBundle類的對象,這個對象就是一個完全path,這個 path 保存的當前可執(zhí)行的app路徑,或者是 返回nil。app ,Build之后, 資源文件直接就復制到了根目錄下,于是讀取的方法,應該是這樣:

NSString *earth = [[NSBundle mainBundle] pathForResource:@"Brad Cox" ofType:@"png"];
編譯之后,mainBundle的資源都是放到RootFolder下,所以,可以直接訪問,不要指定內(nèi)部路徑。通常來說,這個 mainbundle 就是 當前的可執(zhí)行app 的在根目錄下的絕對路徑,

也就是:

finder根目錄開始的路徑+app 的name+.app 后綴。而資源就直接訪問,都在 app 的包里。比如;

/Users/dashuai/Library/Application Support/iPhone Simulator/5.1/Applications/3B8EC78A-5EEE-4C2F-B0CB-4C3F02B996D2/tomcat.app/drink.png

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 今天就本周作業(yè)的讀取txt文件查找了的一些方法,如下: //讀取文本內(nèi)容NSError *error;NSStri...
    霏誠拜咬o閱讀 743評論 0 0
  • 原文地址:http://blog.csdn.net/shx_yi/article/details/8755415 ...
    默默_David閱讀 13,939評論 2 2
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,159評論 25 708
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,628評論 19 139
  • 《銀魂》里有一句臺詞說:“等你們長大成人了就會明白,人生還有眼淚也沖刷不干凈的巨大悲傷,還有難忘的痛苦讓你們即使想...
    殘月夢否閱讀 241評論 0 0

友情鏈接更多精彩內(nèi)容