【问题标题】:Cannot load asset inside a framework无法在框架内加载资产
【发布时间】:2017-02-16 16:23:29
【问题描述】:

我正在尝试加载存储在我创建的资产目录中的资产:

if let asset = NSDataAsset(name: "packages") {
    print("loaded")
} else {
    print("not loaded")
}

如果我在应用程序项目中,这可以正常工作,但如果我在框架项目中,则无法正常工作。我能做什么?

我发现这个thread 提到不可能这样做。这就是我遇到麻烦的原因吗?如果是,有什么解决方法吗?

【问题讨论】:

    标签: xcode assets


    【解决方案1】:

    我找不到在框架内使用 Asset 目录的方法,这似乎是不可能的。 但是,我设法使用 Bundle 处理了我的 JSON 文件。这就是我所做的。

    1. 创建一个包含您的资源的新组
    2. 将文件拖放到此组中

    现在您必须使用 Bundle 来加载文件:

    let bundle = Bundle(identifier: <your.bundle.name>)
    

    您可以通过单击您的框架目标找到您的包名称,然后选择您需要的包。在 General 选项卡中,获取 Bundle Identifier 字段中的内容。

    这将允许您访问捆绑包的任何文件。

    对于每个文件,加载你的文件路径:

    let path = bundle.path(forResource: <filenameWitoutExtension>, ofType: <yourFileType>)
    

    最后,你可以加载你的文件了:

    let data = NSData(contentsOfFile: path)
    

    我不知道这是否是一个好习惯,但至少我可以访问我的框架的资源。希望它会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-03
      • 2021-09-19
      • 2020-06-19
      • 1970-01-01
      • 2021-08-10
      • 2020-04-28
      • 2021-05-10
      • 2019-05-08
      相关资源
      最近更新 更多