如何从'ViewController'调用'SKScene'中的方法

问题描述 投票:1回答:1

我在我的SKScene中有一个方法:

  func someTypeMethod() {
      print("someTypeMethod...")
  }

我试图从我的'ViewController'中调用它:

  if let scene = SKScene(fileNamed: "Scene") {
      scene.someTypeMethod()
  } 

但Xcode说'Value of type SKScene has no member 'scene.someTypeMethod'

我甚至试图让方法“公开”和“上课”。但仍然出现错误。那么,如何从'ViewController'中调用我的'SKScene'中的这些方法?

请帮忙...

ios xcode arkit skscene public-method
1个回答
1
投票

someTypeMethod()是在SKScene或子类的扩展上声明的吗?

如果它在子类上,则需要更改为

  if let scene = SKScene(fileNamed: "Scene") as? MySKSceneSubclass {
      scene.someTypeMethod()
  } 

编译器只知道该场景具有本机SKScene方法,如果你没有告诉它预期哪个正确的子类。使它成为一个类方法意味着你调用SKScene.someTypeMethod()而不是scene.someTypeMethod(),但它将无法访问你的场景数据。

© www.soinside.com 2019 - 2024. All rights reserved.