gpt4 book ai didi

ios - 在另一个类中调用函数的最佳方式是什么? ( swift )

转载 作者:搜寻专家 更新时间:2023-10-31 08:17:43 29 4
gpt4 key购买 nike

所以,我有一个关于 Swift 中的类和函数的相当简单的问题。

假设我用 SpriteKit 制作了一个应用程序。我有一个 GameScene (SKScene)、一个 GameViewController (UIViewController) 和一个 GameViewController 的主 Storyboard。

如果我想在我的 GameScene 顶部有一个按钮,我会将一个按钮 IBOutlet 从主 Storyboard连接到 GameViewController。但是我该如何设置它,以便在我触摸按钮时可以调用 GameScene 中的函数?

我必须通过委托(delegate)来处理这个问题还是有更简单的方法?

编辑:

详细来说,我想调用的函数是:

  func resetScene(){
self.removeAllActions()
self.removeAllChildren()
}

我试图将其声明为 class func 但不知何故它并不完全有效。

最佳答案

基本上有四种从其他类调用函数的方法。

  1. 类的实例。如果您有类 Object 的实例,您可以对该实例调用 Object 的 方法,例如 myObject.buttonTapped()

  2. 委托(delegate):为类A创建一个协议(protocol),并在协议(protocol)中声明方法。 A 类必须有一个协议(protocol)实例。在 buttonTapped 方法中调用该方法,例如 delegate.notifyButtonTapped()。 B类中,遵守协议(protocol),实现notifyButtonTapped()方法。

  3. 通知:通过 NotificationCenter 从类 A 和 addObserver 发布通知到类 B 以获取该通知。检查this链接以获取更多信息。

  4. 闭包/ block :在这种情况下,闭包不是最好的解决方案,它们可能相当复杂,难以完全理解

你可以在这里和代表团一起去。检查this link 来自 rw 的澄清。

关于ios - 在另一个类中调用函数的最佳方式是什么? ( swift ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42457588/

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