使用NSBundle访问iOS7中的资源

我在更新应用程序到iOS7 SDK时遇到问题。 在使用iOS 6 SDK之前,使用NSURL来访问我的mp3文件,如下所示:

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

现在,使用iOS 7 SDK我总是得到零作为folderURL的值,我的audio指南不再findMP3的。

我已经查看了模拟器生成的.app-Bundle(在〜/ Library / Application Support / …中),我可以在根目录下看到“AudioGuide”文件夹。 所以这是确定的。

我不是iOS的大师,并没有真正遵循iOS7的更新。 在应用程序中如何访问自己的资产是否有任何更改? 我如何访问我的文件?

苹果文档为- (NSURL *)URLForResource:(NSString *)name withExtension:(NSString *)extension subdirectory:(NSString *)subpath

返回由指定名称和扩展名标识的资源文件的文件URL,并驻留在给定的捆绑目录中。

这意味着你可以在给定的子目录中获得特定types的文件URL,所以你应该使用这个方法调用你的文件名和扩展名。

如果您正在尝试读取该目录下的文件列表,则可以将所有audio文件捆绑到一个zip或gzip文件中,并在您访问文档或应用程序支持目录时将其解压缩第一次,那么你可以阅读它使用下面的代码。

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

希望这可以帮助!