无法在Swift中设置Getter和Setter

时间:2017-04-03 01:23:03

标签: swift

我创建了一个自定义类,我想添加关联的getter和setter。我已经阅读了来自Apple的官方documentation,并注意到在设置getter和setter时,实际上你创建了一个单独的变量,这看起来真的很混乱。例如,在上面链接的文档中,getter和setter应用于一个名为perimeter的新变量,以从另一个名为sidelength的变量中获取值。以下是我的代码:

enter image description here

1 个答案:

答案 0 :(得分:0)

像你一样实现它们的getter和setter只用于Swift中的计算变量。带有getter和setter的变量实际上并不存储任何内容,但在为其值赋值或使用其他变量时会执行某些操作。在适当使用时,用法更像是这样。

var _key: String?

var key: String? {
    get {
        return _key
    }
    set {
        _key = newValue
    }
}

但是,您很少会在相同的数据类型上使用它。我经常使用它们与CoreData进行通信,并将日期设置为字符串或返回日期。有时我可能会使用它来处理可选中的变更为非可选项。

为了在Swift中使用变量,不需要getter和setter。如果你已经习惯了它们的语言,我可以理解这里的混乱,但忘记了相关性,重新开始思考它。我确信在很短的时间之后,你会喜欢Swift使用其数据类型的方式!

编辑:

为了做你想做的事,你需要的只是:

class PollCell: UICollectionViewCell {
    var key: String?
}

现在,您可以将所需的任何值分配到cell.key,并从cell.key中检索所需的任何值。