2012-08-08 88 views
1

我一直在尋找一種方法來遞歸搜索我的主包中的子目錄。乍一看,在NSBundle上定義的實例方法,「 - pathForResource:ofType:inDirectory:」看起來好像會做這項工作。它指定如果您傳入'nil'作爲資源類型,該方法將搜索與資源名稱匹配的給定資源的所有子目錄。任何人都得到[[NSBundle mainBundle] pathForResource:ofType:inDirectory]遞歸地工作?

https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSBundle_Class/Reference/Reference.html

我已經試過了,像這樣:

NSString *pathForResource = [[NSBundle mainBundle] pathForResource:spriteFrameName ofType:nil inDirectory:@"images"];

不幸的是不起作用。看看文檔,它似乎也說它返回一個pathNames數組,即使返回值被聲明爲'NSString *'。

在談論遞歸子目錄時,它指向了國際化的資源,這導致我相信遞歸可能與相關的資源語言目錄有關,但這種意圖在某種程度上迷失了我。

我在外面吃午飯還沒有開始工作,或者這可能只是一個令人困惑的文檔?

+0

爲什麼你不知道自己的應用程序包中資源的路徑? – 2012-08-09 01:47:46

+0

我們有一個構建時間工具,可以在應用程序中隨機組織資源結構。 (我們的藝術家在他們的組織方式上有一定的餘地,但我需要一些基本的文件來查找和驗證,儘管我被告知會保證存在。) – djdrzzy 2012-08-09 19:26:34

回答

2

我想你已經找到了一個文檔錯誤。

要遞歸搜索您的包,請將resourcePath發送到包,然後將其傳遞到NSFileManagerenumeratorAtPath:消息中。

+0

太棒了。謝謝! – djdrzzy 2012-08-10 19:47:18

相關問題