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

时间:2018-03-01 20:07:42

标签: ios xcode arkit skscene public-method

我在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'中的这些方法?

请帮忙......

1 个答案:

答案 0 :(得分:1)

是否在SKScene的扩展名或子类上声明了someTypeMethod()

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

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

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