【问题标题】:How to get resource path for PNG files from Bundle?如何从 Bundle 中获取 PNG 文件的资源路径?
【发布时间】:2020-05-30 15:25:12
【问题描述】:

我正在尝试获取添加到项目中的图像文件的资源路径。以下代码适用于 jpeg 文件。但它为 PNG 文件提供 nil。图片名称正确,已添加到项目中。

使用puppy.pngcar.jpeg 名称添加图像文件。

let carPathURL = Bundle.main.path(forResource: "car", ofType: "jpeg") // Gives right path
let puppyPathURL = Bundle.main.path(forResource: "puppy", ofType: "png") // Gives nil

以下是应用程序包内容的屏幕截图。

项目的屏幕截图如下所示,显示了添加的文件。

为什么它对 PNG 文件给出 nil ?如何获取PNG文件的资源路径?

【问题讨论】:

  • 在上面的代码中,您设置了 carPathURL 但转换了 imagePathURL。代码示例有点混乱。哪一行给出 nil,第二行还是第三行代码?
  • @Marcy,感谢您指出。我已经更正了这个问题。第二行给出 nil。
  • 以上屏幕截图中的puppy.png在哪里?
  • @Rob,是的,它不存在,但为什么呢?我不确定。
  • @Rob,我用更新的项目截图编辑了这个问题。图像文件已添加。

标签: ios objective-c swift


【解决方案1】:

如果扩展名是大写的(即 PNG,而不是 png),则必须明确指定

Bundle.main.path(forResource: "puppy", ofType: "PNG")

【讨论】:

  • 好点。我只是尝试了“png”和“PNG”,结果仍然为零。
  • @Shubham,您确定您已将此图像添加到测试目标吗?在 Finder 中打开构建的应用程序包内容并查看图像是否存在?
  • 是的,它被添加到目标中。它还出现在 Copy Bundle Resources 部分下。
  • @Shubham,我相信奇迹,但不在这里))。您会通过 Finder 中的“显示包内容”附加到应用程序包内容的问题屏幕截图吗?
  • 是的,我调查过了。并且 png 文件不存在。
猜你喜欢
  • 1970-01-01
  • 2020-09-09
  • 2011-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-06
相关资源
最近更新 更多