gpt4 book ai didi

swift - Var getter 和 setter 混淆

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

我正在 swift 开发一个项目。我知道 getter/setter/didSet 如何用于变量,但这不是我想要的。我的项目是一个 SpriteKit 游戏,我对应该做什么有点困惑。在 Objective-C 中,我总是只创建 SKSpriteNode 的一个属性,然后使用 getter 方法实现来访问它。然而,这不可能很快完成。这就是我感到困惑的地方。以下是我已经设置的方式。

我的主要问题是:在快速工作时我应该做这个“解决方法”

func planeNode() -> SKSpriteNode { // use instance var here }

或者我应该在变量的 getter 方法中执行此操作:

var plane: SKSpriteNode { get { // use separate SKSpriteNode here and just return }}

感谢任何帮助

最佳答案

您可以创建一个由存储属性支持的计算属性 - 我在 C# 中经常使用此模式:

private var _plane: SKSpriteNode
public var plane: SKSpriteNode { get { return _plane } set { _plane = newValue } }

但请注意,您只需使用一个存储的属性即可实现相同的效果:

public var plane: SKSpriteNode

在 obj-c 中使用 @synthesize 语句也发生同样的情况(现在已过时,因为自动应用)。不同之处在于,支持数据成员对类可用(通常属性名称以下划线为前缀),而在 swift 中,该数据成员根本不可见。

附录想知道我是否误解了你的问题。您是否正在寻找一种方法来创建可计算值(value)的属性(property)?如果是,则使用计算机属性:

public var plane: SKSpriteNode { get { return ... } }

关于swift - Var getter 和 setter 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25514429/

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