2015-03-03 95 views
0

新手問題。如何在應用程序測試期間訪問資源

我知道,在模擬器中測試我的iPhone應用程序時,並非所有資源文件都在[NSBundle mainBundle]中可用。我知道解決方案是指[NSBundle bundleForClass:[self class]]而不是mainBundle。

問題,我有:當應用程序部署和它是很好的做法

  1. 是指的[NSBundle bundleForClass:[self class]]有效?

  2. 它是很好的做法,在應用程序委託定義...

    NSBundle *appBundle = [NSBundle bundleForClass:[self class]]; 
    // or, for in final app 
    // NSBundle *appBundle = [NSBundle mainBundle]; 
    

...和使用appBundle整個代碼?否則,有太多的地方,我指的是[NSBundle mainBundle],我將不得不改變爲bundleForClass:[self Class]

如果我使用這個appBundle定義,我應該做其他事情嗎?也許在應用程序委託結束之前釋放appBundle?

謝謝!

蘇萊曼

+2

在什麼情況下你看到'mainBundle'不工作?如果它在模擬器不起作用,那麼它不應該工作.. – Wain 2015-03-03 13:30:22

+0

我猜你沒有將資源添加到應用程序包,這就是爲什麼他們沒有顯示出來。該包中的任何資源都位於mainBundle中。要爲資源添加或刪除資源,請單擊左上角的小文件夾(文件夾視圖),然後單擊頂部的項目,然後單擊目標(​​如果您有多個),然後顯示「複製軟件包資源」選項卡。從你所描述的內容來看,我猜測你想要的資源不會在那裏。 – 2015-03-03 14:11:49

+0

@Wain,當在模擬器中運行應用程序時,並不是所有資源都在主包中找到。 – Sleiman 2015-03-03 14:54:15

回答

0

mainBundle包含包內的一切,爲你的目標(應用程序)的資源。 XCode會嘗試將所有資產添加到捆綁軟件中,但有時會錯過或其他時候您可能無意中告訴XCode不要將其複製到捆綁軟件中。重要的是要記住,只有在發佈之前將應用程序需要的東西放入包中 - 如果您有測試文件,請將其刪除 - 因爲它們會讓您的應用程序變大,從而消耗用戶存儲空間和帶寬。

要添加/刪除/檢查包中的內容,請轉到文件/組檢查器,即XCode左上方的小文件夾圖標。選擇最頂級的項目。如果您有多個目標,請選擇一個目標。單擊構建階段並向下滾動到複製包資源。這就是你管理複製到包中的東西的地方。

相關問題