2017-02-26 18 views
0

我找不出任何韻律或原因如何pathForResource工作......或更合適,不。'NSBundle mainBundle'pathForResource奇怪的行爲

我在我的應用程序中有一堆筆尖,它們都正確地在/ Build Phase/Copy Bundle Resources中。

他們也在File Inspector選項卡上的Target Membership中正確勾選。

爲了簡潔,我只在這裏顯示2個案例。 當我到達我使用pathForResource的代碼部分時,會得到任意且不一致的結果。即使所有我的筆尖被命名爲____。廈門國際銀行,在某些情況下,只有這樣我得到一個結果回從pathForResource是,如果我要求xml和其他時間我要問nib

任何人有一個想法,爲什麼這種行爲是不一致的?

enter image description here

回答

2

這些結果似乎並不特別出乎意料的或不一致的給我。

.xib文件是NIB的源文件。他們不應該將直接複製到應用程序中。它們在構建時編譯爲.nib文件,並且它們被複制到應用程序中的那些.nib文件。您不應該期望pathForResource:... ofType:@"xib"在您的應用程序中找到.xib文件。如果是這樣,你已經搞砸了應用程序的構建。 .xib文件在運行時無用。

大概與此無關,你有一個在Copy Bundle Resources構建階段的文件TabSale.xml。該文件直接複製。如果您不打算複製原始XML文件 - 例如,如果這是一個在構建時應該轉換爲其他文件的源文件 - 那麼您需要弄清楚它爲什麼被複制。如果由於某種原因它只是TabSale.xib的一個僞造副本,那麼您應該擺脫它。

+0

好吧,我不知道.xib,那是很好的信息,但是我更關心的是,沒有足夠清楚的說明,爲什麼我可以要求一些xib通過指定'xml'使用'pathForResource'和其他xibs我不能。其他xibs我必須指定'nib'才能找回它們的路徑。我可以發現這種行爲沒有明顯的原因。 –

+0

當你指定「xml」時,你是**不**獲取NIB。您正在獲取一些其他文件,但名稱相似但不完全相同。你的截圖顯示了這一點毫無疑問,擴展名是.xml。不明原因的是爲什麼在你的應用中有這樣一個.xml文件。正如我在答覆的最後一段中提到的那樣,這是項目/目標的問題。很可能,您無意中將.xml文件添加到項目以及目標的「複製包資源」構建階段,並且他們正在被盡職地複製。最初創建這些.xml文件的內容我無法猜測。 –