如何为 Image.xcassets 中的图像构建 NSURL?

How do you build an NSURL for an image in Image.xcassets?

加载本地 UIImage 资产的最简单方法当然是使用 +[UIImage imageNamed],但对于我的情况,我想提供一个 NSURL *。如何获取本地文件的 NSURL *

在使用 xcasset 时,Xcode 将所有文件放入一个新文件中。 1 个文件来管理它们。因此,您无法直接访问 xcasset 中的图像存储。来自苹果的 documentation:

For projects with a deployment target of at least iOS 7 or OS X 10.9, Xcode compiles your asset catalogs into a runtime binary file format that reduces the download time for your app.

如果您必须访问该文件,您有两个选择:

  • 这张图片不要使用 xcasset,而是把你的图片作为普通图片放在你的项目中,然后使用 NSBundle 来获取它
  • 使用UIImage imageNamed,并保存在你选择的目录下

但无论您有什么需求,您都应该考虑另一种方式来管理它。上述解决方案都可以,但我相信您可以有更好的解决方案。