swift ios 为什么在这个例子中使用 didSet

swift ios why use didSet in this example

我试图理解为什么在这个例子中使用 didSet 。它来自显示图像的页面控制器(图像滑块)

代码:

import UIKit

class PageItemController: UIViewController {

    // MARK: - Variables
    var itemIndex: Int = 0
    var imageName: String = "" {

        didSet {

            if let imageView = contentImageView {
                imageView.image = UIImage(named: imageName)
            }

        }
    }

    @IBOutlet var contentImageView: UIImageView?

    // MARK: - View Lifecycle
    override func viewDidLoad() {
        super.viewDidLoad()
        print(imageName)
        contentImageView!.image = UIImage(named: imageName)

    }
}

我已经尝试过相同的代码,但没有 didSet,而且我没有注意到速度等方面的任何变化,那么为什么要使用它呢?

实际上,如果设置了 imageNamedidSet 将使用 imageName 字符串设置 uiimage。 如果您从任何其他视图分配 imageName 那么,您应该使用如下代码:

override func viewDidLoad() {
        super.viewDidLoad()
    }

如果您使用 didSet,您可以通过设置 imageName 来更改显示的图像。

而是使用这个: let image = UIImage(named: "*Name of image in assets*") 并确保实际图像在项目资产中。