gpt4 book ai didi

swift - 惯用的 Swift : Getter & Setter boiler plate coding

转载 作者:行者123 更新时间:2023-11-28 13:13:13 25 4
gpt4 key购买 nike

在将一些项目从 Objective-C 迁移到 Swift 时,我发现自己用更多样板代码替换了 @property/@synthesize 语法。

例如,对于我正在实现的每个 @property,我目前都使用这种模式:

var foo: Foo? {
get {
return _foo
}
set {
_foo = newValue
}
}

var _foo: Foo?

它最终添加得很快。将此与 Objective-C 中的两行进行比较。那感觉不对。

我是否应该将移植类中使用 _foo 的代码替换为 foo 并完全跳过接口(interface)后面的每个 public var 的抽象?

最佳答案

正如@Amit89 所指出的,您可以简单地使用_foo
在您的示例中,添加 foo 完全没有任何作用,因为您只是重新创建了 _foo 已提供的 getset 功能>.

如果你想控制 _foo 的设置方式,你可以使用属性观察器:

var _foo: Foo? {
didSet { }
willSet { }
}

如果你想控制如何检索 _foo,那么创建 _fooprivate 版本确实有意义,然后通过计算属性访问它:

private var _foo: Foo?

var foo: Foo? {
get {
// return `_foo` in some special way
}

// add a setter if you want to set `_foo` in some special way
}

关于swift - 惯用的 Swift : Getter & Setter boiler plate coding,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30450660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com