防止应用程序崩溃,以防从Xcode重命名/删除图像

时间:2018-10-26 04:06:23

标签: ios swift xcode

我已经在我的UIImageView中设置了徽标图像,并且可以正常运行,但是如果有人误删除/重命名了图像,然后再次运行,并且我的应用程序崩溃是因为Xcode找不到该图像。 在这里,我需要实现的是,如果Xcode由于重命名/删除而找不到此类图像,那么它不会崩溃,但是应该设置一些占位符图像,并且对于所有UIImageViews而言,它在项目中也是全局的。 所以任何人都可以在这方面帮助我。预先感谢。

enter image description here

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

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
}()