将 Bundle 中的文件显示到 UITableView - iOS

Posted

技术标签:

【中文标题】将 Bundle 中的文件显示到 UITableView - iOS【英文标题】:Displaying files from Bundle into UITableView - iOS 【发布时间】:2016-06-19 11:23:54 【问题描述】:

我的包中有几个音频文件,我想在UITableView 中显示它们(名称)。当用户点击任何cell 时,应播放具有该名称的音频文件。

例如

我用谷歌搜索,但我得到的只是从 Documents Directory 中读取文件。

如何显示我的捆绑文件?

请帮忙, 谢谢!

【问题讨论】:

【参考方案1】:

您必须首先获得指向主包的指针,其中存储了应用程序的资源。使用此指针,您可以搜索所有扩展名为 mp3 的资源。 您可以使用如下代码:

NSBundle *mainBundle = [NSBundle mainBundle];
NSArray *paths = [mainBundle pathsForResourcesOfType:@"mp3" inDirectory:nil];

每个路径中的最后一个元素是相应 mp3 文件的文件名。

如需了解更多信息,请查看 Apple 的Bundle Programming Guide。

【讨论】:

【参考方案2】:

tableview didselectrowatindexpath方法中写下这段代码

NSString * soundSelected = cell.textlabel.text;
    NSString *path = [NSString stringWithFormat:@"%@/%@.mp3", [[NSBundle mainBundle] resourcePath],soundSelected];
        NSURL *soundUrl = [NSURL fileURLWithPath:path];

        AVAudioPlayer* cellTapSound = [[AVAudioPlayer alloc] initWithContentsOfURL:soundUrl error:nil];
        [cellTapSound play];

【讨论】:

以上是关于将 Bundle 中的文件显示到 UITableView - iOS的主要内容,如果未能解决你的问题,请参考以下文章

“systemjs-builder”:如何将 js 文件中的所有依赖项构建到一个 bundle.js 文件中

无法将目录从 Bundle 复制到库

子目录中的资源文件被复制到 app bundle 的根目录

如何从 SwiftUI 中的 Bundle 中的有效路径或 URL 将图像加载到 Image()?

如何将 Bundle 中的值添加到 String?

汇总是不是将 node_modules 捆绑到 bundle.js 中?