2013-04-04 189 views
0

目前,我一直在使用[NSBundle mainBundle] loadNibNamed:以應用程序的形式加載筆尖到我的應用程序。我想要做的只是將所有的筆尖包含在子文件夾(及其參考圖像)中,但似乎幾乎不可能加載這些筆尖。 loadNibNamed不允許指定路徑。我做了大量的搜索,找不到合適的方法。我試過的其他東西都會給出例外。 我試過從文件中加載數據並將其解壓縮,但它說這是一個難以理解的存檔。 UINibNSBundle具有相同的問題。從路徑中加載筆尖

必須有一種方法來指定文件路徑,就像加載任何其他文件一樣。

我想最後的內容是NSArray就像返回loadNibNamed:一樣。

任何洞察將有所幫助。

我得到的最接近的是使用[NSBundle bundleWithPath:]並指定完整路徑。它表示路徑尚未加載,並拋出異常。爲什麼沒有加載?

+0

這是子還是你的應用程序包裏面? – CodaFi 2013-04-04 22:35:04

+0

該文件夾位於軟件包根目錄中。它也在Copy Bundle Resources下。所有其他文件夾在同一根加載罰款。當我在.app裏面查看新文件夾時,它的所有內容都在那裏。筆尖文件是相同的。我剛剛創建了一個新文件夾,移動了筆尖,然後用Xcode重新鏈接了資源。當我意識到loadNibNamed:沒​​有使用路徑時,我開始搜索並嘗試各種解決方案。但到目前爲止沒有任何工作。 – user1137704 2013-04-04 22:40:05

+0

你的路是什麼? – ingaham 2013-04-04 23:11:44

回答

2

我想你會得到「尚未加載」,因爲你沒有加載bundle [bundle load]。還要檢查名稱區分大小寫,因爲模擬器通常不區分大小寫,而Device不是。試試這個,看看你如何去。

問候, 拉維

+0

@ user1137704,如果這有助於解決問題,請接受答案。問候, – 2013-04-05 02:39:45

+0

我相信這是做到這一點的正確方法。但是,我的筆尖只是在一個目錄中,而不是一個捆綁包。當我調用[bundle load]時,它返回false,並且仍然「尚未加載」。在這種情況下可以將目錄作爲NSBundle處理嗎?抱歉耽擱了。 – user1137704 2013-04-05 07:04:51

+0

@ user1137704,如果你的筆尖在同一個項目或捆綁包中,那麼你不需要指定任何路徑。你只需要用它的名字叫Nib。項目子目錄僅用於可視化表示,但它們都暴露於相同的可執行文件路徑。 – 2013-04-05 07:17:25