ios - 防止应用程序崩溃以防图像从 Xcode 重命名/删除
问题描述
我已经在我的 UIImageView 中设置了徽标图像并运行它并且它工作正常,但如果有人错误地删除/重命名图像然后再次运行并且我的应用程序崩溃,因为 Xcode 找不到该图像。在这里,我需要实现,如果 Xcode 由于重命名/删除而找不到此类图像,则它不会崩溃,但应该设置一些占位符图像并且它在所有 UIImageViews 的项目中也是全局的。所以任何人都可以在这方面帮助我。提前致谢。
解决方案
Quoc Nguyen 是正确的。您可以只使用图像文字名称。像这样:
private lazy var logoImageView: UIImageView = {
let imageView = UIImageView(image: UIImage(named: "swift_logo"))
imageView.translatesAutoresizingMaskIntoConstraints = false
return imageView
}()
UIImageView
初始化方法可以接受一个可选 UIImage
对象:
init(image: UIImage?)
并且UIImage
使用名称的初始化方法产生可选 UIImage
对象。
init?(named name: String)
这意味着,您可以安全地使用它。无论您的徽标是否存在。我希望这有帮助!
更新:
您可以制作自己的UIImage
类扩展来声明您的资产,这样当您需要重命名资产时,您必须重命名一次,并且更改将应用于整个项目(全局,如您所说)。
import UIKit
/// A category for handling images
extension UIImage {
// MARK: - Home Assets
static let swiftLogo = UIImage(named: "swift_logo")
}
你可以像这样使用它:
private lazy var logoImageView: UIImageView = {
let imageView = UIImageView(image: .swiftLogo)
imageView.translatesAutoresizingMaskIntoConstraints = false
return imageView
}()
推荐阅读
- java - FileNotFoundException 的 Java 无法访问的 catch 块
- java - 如何在java中旋转给定数字的整数?
- powershell - Powershell 路径名变量
- python - 如何使用日志记录模块将 Python 的单元测试模块错误回溯重定向到日志文件?
- curl - 如何通过使用 curl 脚本解析 AQL 来下载工件?
- visual-c++ - concurrency::parallel_for 似乎跳过了一些并行循环迭代
- c# - Powershell 无法加载其依赖项之一的文件或程序集。如果 dll 已构建并加载
- cognos - 由于复杂的 IS NULL OR 条件,Cognos 多事实拼接查询永远运行
- seo - 具有多个域站点地图条目的 Robots.txt
- python - Python ImportError:文件太短(NAOqi 框架)