【问题标题】:How to call a method inside my 'SKScene' from 'ViewController'如何从“ViewController”调用我的“SKScene”中的方法
【发布时间】:2018-08-10 00:07:22
【问题描述】:

我的 SKScene 中有一个方法:

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

我试图从我的“ViewController”中调用它:

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

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

我什至尝试将方法设为“public”和“class”。但仍然出现错误。那么,我怎样才能在我的 'SKScene' 中从它的 'ViewController' 调用这些方法呢?

请帮忙...

【问题讨论】:

    标签: ios xcode arkit skscene public-method


    【解决方案1】:

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

    如果在子类上,需要改成

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

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

    【讨论】:

      猜你喜欢
      • 2014-09-20
      • 1970-01-01
      • 2014-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多