我在將shader-glsl文件從一個xcode項目添加到另一個xcode項目時遇到一些問題。我現在完全困惑,因爲我無法制作一個文件路徑,我只需拖入xcode即可。 我已經檢查拼寫,「show in finder」很多次,仍然有問題...pathForRes產生不穩定的空
這是我添加到xCode的文件的示例,我甚至沒有把它們放到子目錄中以排除任何問題的:
現在我的代碼:
NSLog(@"Filepath of Tools-image: %@",[[NSBundle mainBundle] pathForResource:@"tools" ofType:@"png"]);
NSLog(@"Filepath of mo-tut is: %@",[[NSBundle mainBundle] pathForResource:@"mo" ofType:@"tut"]);
NSLog(@"Filepath of FragShader-fsh is: %@",[[NSBundle mainBundle] pathForResource:@"fragshader" ofType:@"fsh"]);
在運行時我得到這樣的輸出:
2011-07-02 02:03:33.516 windowconfig[16192:707] Filepath of Tools-image: /var/mobile/Applications/BC82AD2C-B8B9-4751-80A2-31EC5ACEC9C2/windowconfig.app/tools.png
2011-07-02 02:03:33.526 windowconfig[16192:707] Filepath of mo-tut is: /var/mobile/Applications/BC82AD2C-B8B9-4751-80A2-31EC5ACEC9C2/windowconfig.app/mo.tut
2011-07-02 02:03:33.531 windowconfig[16192:707] Filepath of FragShader-fsh is: (null)
請問,有沒有人有這個想法?
編輯:「tools.png」目前是我在標籤欄上使用的圖標,它在資源中的子文件夾中,僅僅是一個比較測試。如果你們想知道爲什麼我沒有打開截圖中其他文件的路徑。
EDIT2:在過去的兩個小時裏,我用瘋狂的「乾淨」。 「fragshader.fsh」顯然不會被複制到「windowconfig.app」包中,即使我將它添加到項目中的方式與我添加「mo.tut」相同,並且這個包在包中。我怎樣才能確保它被複制?
EDIT3:在Inspector中檢查兩個文件的目標成員資格,但仍沒有複製着色器。
解決方案:
在目標 - 建造階段的文件是不是在「文件拷貝到捆綁」名單。 我手動添加它,但仍然奇怪,它沒有自動添加後,我將文件添加到項目。
如果我在「〜/ Library/Xcode/DerivedData/....」下打開bundle,那麼fragshader不包含在「windowconfig.app」中。 「mo.tut」即使我將它們以與Xcode完全相同的方式添加。我如何確保它被複制,並且可能是沒有進入複製文件步驟的原因? – Bersaelor
http://developer.apple.com/library/mac/#recipes/xcode_help-project_editor/Articles/CreatingaCopyFilesBuildPhase.html或類似可能會有所幫助:) –