gpt4 book ai didi

swift - 获取位于 Assets.xcassets 中的数据集中文件的路径

转载 作者:搜寻专家 更新时间:2023-10-31 19:33:11 24 4
gpt4 key购买 nike

我的 Assets.xcassets 中有一组音频文件:

Assets.xcassets

我正在尝试获取其中一个音频文件的路径,如下所示:

let path: String = Bundle.main.path(forResource: "acoustic_grand_piano/A4", ofType: "f32")!

但是我得到了一个EXC_BAD_INSTRUCTION。我试图在互联网上查找,但在数据集上找不到任何内容。

如何获取其中一个文件的内容?

谢谢!

最佳答案

试试这个:

  • 手动将您的文件放入一个文件夹,任意命名。
  • 将“.bundle”附加到文件夹以创建一个包。你会得到一个警告,接受它。恭喜,您刚刚创建了第一个 bundle ! :-)
  • 将该文件夹手动拖到您的应用中。
  • 使用以下代码获取您的文件....

    public func returnFile(_ named:String) -> String {
    let path: String = Bundle.main.path(forResource: "myAudioFiles", ofType: "bundle")! + "/" + name + ".f32"
    do {
    return try String(contentsOfFile: path)
    }
    catch let error as NSError {
    return error.description
    }
    }

现在,我的文件是 CIKernel 代码的文本文件。由于您的文件是音频文件,因此您可能需要将返回的字符串更改为其他内容。

编辑:

在我的例子中,我使用的是一个框架,因为我希望与扩展程序和其他应用程序共享这些文件/图像。如果您在这样的设置中工作,这里是未更改的代码:

public func returnFile(_ resource:String, _ fileName:String, _ fileType:String) -> String {
let identifier = "com.companyname.appname" // replace with framework bundle identifier
let fileBundle = Bundle.init(identifier: identifier)
let filePath = (fileBundle?.path(forResource: resource, ofType: "bundle"))! + "/" + fileName + "." + fileType
do {
return try String(contentsOfFile: filePath)
}
catch let error as NSError {
return error.description
}

关于swift - 获取位于 Assets.xcassets 中的数据集中文件的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41129204/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com