gpt4 book ai didi

ios - Swift 4.2 - 类型 '(____) -> () -> (____)' 的值没有成员 'childNode'

转载 作者:搜寻专家 更新时间:2023-11-01 06:58:59 25 4
gpt4 key购买 nike

我在 swift 中创建了一个自定义类来管理我正在制作的游戏的主菜单我将它链接到 SKScene 文件并尝试创建一个常量来访问该变量但我得到了这个错误:无法使用实例成员'属性初始值设定项中的 childNode'。

import SpriteKit
import GameplayKit

class MainMenu: SKScene {

let startGameButton:SKSpriteNode = self.childNode(withName: "SpriteName")

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {

}
}

有人知道怎么回事吗?如果没有,还有另一种访问 Sprite 的方法。

最佳答案

let 变量的初始值必须是可以在执行 init() 方法之前初始化的常量。这反过来意味着他们不能引用 self

一个解决方法是让它们成为lazy 实例变量,它们在第一次使用时被初始化(根据定义,这不会在 init() 之前发生)已返回对该对象的引用)。在这种情况下,惰性变量将使用闭包的结果进行初始化。

改变:

let startGameButton:SKSpriteNode = self.childNode(withName: "SpriteName")

lazy var startGameButton:SKSpriteNode = self.childNode(withName: "SpriteName") as! SKSpriteNode

关于ios - Swift 4.2 - 类型 '(____) -> () -> (____)' 的值没有成员 'childNode',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51698434/

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