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

时间:2016-05-19 14:03:36

标签: ios swift 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,我没有注意到速度等方面的任何变化,为什么要使用?

3 个答案:

答案 0 :(得分:1)

如果设置了didSetimageName实际上会将imageName字符串设置为uiimage。 如果从任何其他视图分配imageName,则应使用如下代码:

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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