我在更新应用程序到iOS7 SDK时遇到问题。在我使用iOS 6 SDK和使用NSURL
文件夹访问我的mp3文件之前,如下所示:
NSURL *folderURL = [[NSBundle mainBundle] URLForResource:@"" withExtension:@"" subdirectory:@"AudioGuide"];
现在,使用iOS 7 SDK,我总是得到nil作为folderURL
的值,我的音频指南再也找不到mp3了。
我已经查看了为模拟器生成的.app- bundle(在~/Library/Application Support/…),我可以在根目录中看到"AudioGuide"文件夹。所以它肯定在那里。
我不是iOS专家,也没有真正关注iOS7的更新。在应用程序中如何访问自己的资产有任何变化吗?我如何访问我的文件?
Apple doc for - (NSURL *)URLForResource:(NSString *)name withExtension:(NSString *)extension subdirectory:(NSString *)subpath
返回资源文件的文件URL名称和扩展名,并驻留在给定的bundle目录中。
这意味着你可以在给定的子目录中获得特定类型的文件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];
希望这对你有帮助!