2014-03-26 44 views
0

我在更新應用程序到iOS7 SDK時遇到問題。之前我用的iOS 6 SDK和訪問使用NSURL我的MP3文件這樣的文件夾:使用NSBundle在iOS7中訪問資產

NSURL *folderURL = [[NSBundle mainBundle] URLForResource:@"" withExtension:@"" subdirectory:@"AudioGuide"]; 

現在,使用了iOS 7 SDK我總是零爲folderURL的價值,我的語音導遊沒有按再也找不到mp3了。

我已經看過模擬器生成的.app-Bundle(在〜/ Library/Application Support/...中),我可以在根目錄中看到「AudioGuide」文件夾。所以它確實在那裏。

我不是iOS大師,並沒有真正遵循iOS7更新。在應用程序中如何訪問自己的資產是否發生過任何更改?我如何訪問我的文件?

回答

0

蘋果文檔爲- (NSURL *)URLForResource:(NSString *)name withExtension:(NSString *)extension subdirectory:(NSString *)subpath

返回由指定 名和擴展名和居住在一個給定的包目錄標識的資源文件的文件URL。

這意味着您可以在指定的子目錄中獲得具有特定類型的文件URL,因此您應該使用此方法調用以及您的文件名和擴展名。

如果您試圖讀取該目錄下的文件列表,您可以將所有音頻文件捆綁到一個zip或gzip文件中,並在文件或應用程序支持目錄中解壓縮第一次訪問,那麼你可以閱讀它使用下面的代碼。

NSArray *directories = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES); 
NSString *directory = [directories objectAtIndex:0]; 
NSString *audioDirectoryPath = [directory stringByAppendingPathComponent:@"AudioGuide"]; 


NSArray *audioFiles = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:audioDirectoryPath]; 

希望這有助於!

+0

非常感謝幫助! – Tobi