如何从项目Bundle目录读取HEIC图片?为何UIImage加载返回nil?
HEIC图片加载返回nil的原因及解决方法
以下是几种常见的原因和对应的排查/解决步骤:
- 图片未被正确复制到Bundle:Xcode不会默认将HEIC格式图片加入
Copy Bundle Resources列表。你需要进入项目的Build Phases > Copy Bundle Resources,确认目标HEIC图片在列表中,若不在则点击+手动添加。 - 文件名未带扩展名:使用
UIImage(named:)加载HEIC图片时,必须明确指定.heic扩展名(PNG/JPEG可省略)。比如正确写法应为:let image = UIImage(named: "imageName.heic", in: bundle, compatibleWith: nil) - iOS版本兼容性限制:
UIImage原生支持HEIC格式是从iOS 11开始的,如果你的项目部署目标(Deployment Target)低于iOS 11,会无法加载该格式图片。 - 图片文件损坏:用系统预览或其他HEIC兼容工具打开图片,确认文件本身无损坏。
内容的提问来源于stack exchange,提问作者Velu
相关产品推荐
相关产品推荐

