中间有冒号的可选值,这叫什么?

时间:2017-11-23 23:29:13

标签: swift

我是iOS开发的初学者,我正在关注如何删除集合视图中的项目的视频教程。我在集合视图单元格中有这个代码:

class CollectionViewCell: UICollectionViewCell {
    @IBOutlet weak var titleLabel: UILabel!
    @IBOutlet weak var selectionImage: UIImageView!

    var isEditing: Bool = false {
        didSet {
            selectionImage.isHidden = !isEditing
        }
    }

    override var isSelected: Bool {
        didSet {
            if isEditing {
                selectionImage.image = isSelected ? UIImage(named: "Checked") : UIImage(named: "Unchecked")
            }
        }
    }
}

我完全不理解这段代码

isSelected ? UIImage(named: "Checked") : UIImage(named: "Unchecked")

它似乎是一个可选项,但它中间也有冒号。叫什么?我想先部分了解这段代码。

提前致谢

2 个答案:

答案 0 :(得分:2)

这称为ternary conditional operator。这是语法糖。 ?之前的部分是条件。如果条件为真,则评估:之前的语句,否则评估:之后的语句。

它存在的原因是为了提高可读性和简化代码。

详细了解here

答案 1 :(得分:0)

这是

的单行
if isSelected == true {
    UIImage(named: "Checked")
}else{
    UIImage(named: "Unchecked")
}