2012-09-17 70 views
3

我有一個iPhone應用程序,它以編程方式獲取應用程序支持文件夾的路徑,測試應用程序支持文件夾中的文件,然後加載文件或創建一個新文件,具體取決於結果。這很簡單,有很多關於如何做到這一點的教程。iPhone應用程序支持文件夾包含文件在構建之前

但是我不能在我的生活中找到任何有關如何在構建應用程序之前將文件放入應用程序支持文件夾的ios文檔或在線文檔。我試圖在我的應用程序Xcode文件夾中創建庫/應用程序支持無濟於事。

具體來說,我正在製作遊戲,並且在構建和運行應用程序之前,我想在遊戲的庫/應用程序支持文件夾中包含關卡包。最好通過在Finder中拖放文件。這可能嗎?

@Vimal Venugopalan

EDIT: 作爲VIMAL提到的,我可以使用[[一個NSBundle mainBundle] pathForResource:ofType:inDirectory:]的方法,但此提供了一種類似於「〜/ MyApp.app路徑/MyFolder/MyFile.plist」。這就是如果「〜」是應用程序主目錄的路徑。或者更具體地說「〜」是通過調用NSHomeDirectory()返回的路徑;功能。我想把我的文件放在「〜/ Library/Application Support/MyFolder/MyFile.plist」

我想要在這個位置的文件,因爲我想將水平包裝合併到我的遊戲中。我想在應用程序下載中包含一些關卡包,並且我最終希望擁有其他可下載的關卡包。現在下載的關卡包肯定要進入「〜/ Library/Application Support /」文件夾(我知道如何編程),所以我想在構建和運行之前將原始包裝包含在同一個地方應用程序。將我的所有關卡放在一個地方會更簡單!

+0

嗨modelbuster,你有沒有得到這個問題的答案?我可以按照下面的@ CocoaFu答案的鏈接將完整的文件夾放入應用程序包中,並通過該包訪問我的文件夾和文件。但是,我仍然沒有想到如何將這些文件放入應用程序支持文件夾,以及訪問這些文件的好方法。 – kev

回答

3

您可以將這些文件添加到項目中,並在運行時訪問這些文件,Xcode會將它們複製到複製包資源階段。這通常會複製到捆綁的根目錄中。要處理目錄,請參閱@ CocoaFu對this SO question的回答。

然後在代碼

NSBundle* bundle = [NSBundle mainBundle]會給你的主束

從此你在一個目錄使用pathForResource看:ofType:inDirectory:例如

NSString* path = [bundle pathForResource:@"file.xml" 
            ofType:nil 
          inDirectory:@"a"]; 

的方法在NSBundle class reference給出也看到了Bundle Programming guide

希望這能解決您的問題。如果沒有請評論

+0

這非常有幫助,謝謝!我唯一缺少的是「爲所有添加的文件夾創建文件夾引用」單選按鈕。 – mogelbuster

+0

這與我所尋找的略有不同。區別在於:讓我們指定「〜」作爲應用程序的主目錄。你提到的文件夾引用和pathForResource方法會給你一個類似這樣的路徑:「〜/ MyApp.app/MyFolder/MyFile.plist」我想包含我的文件的位置在「〜/ Library/Application Support/MyFile」中。 plist中」。你的解決方案可以工作,但閱讀我編輯的原始帖子,爲什麼我想要這個特定的文件夾。再次感謝你! – mogelbuster

+0

不幸的是,沒有辦法自動做你想做的。你可以做的最好的做法是Vimal建議並將文件包含在你的資源包中。然後,當您的應用程序第一次啓動時,將軟件包中的文件複製到應用程序支持目錄。 – honus

相關問題