Problema na subclasse SCNScene

Eu tenho tentado subclassificar SCNScene, pois esse parece ser o melhor lugar para manter minha lógica relacionada à cena. Agora não tenho certeza se isso é recomendado, então minha primeira pergunta é - Devo estar subclassificando o SCNScene e, se não, por que não?A documentação parece sugerir que é comum, mas eu li comentários on-line que sugerem que não devo subclassificá-la. Sucata que, eu estava olhando a documentação paraSKScene. oSCNScene referência de classe não faz menção a subclassificação.

Supondo que não há problema em estruturar meu jogo dessa maneira, aqui está o meu progresso

//  GameScene.swift

import Foundation
import SceneKit


class GameScene: SCNScene {

    lazy var enityManager: BREntityManager = {
        return BREntityManager(scene: self)
    }()

    override init() {
        print("GameScene init")
        super.init()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }


    func someMethod() {
        // Here's where I plan to setup the GameplayKit stuff
        // for the scene
        print("someMethod called")
    }

}

Nota: estou usandolazy var conforme a resposta paraessa questão

Na minha view controller, estou tentando usar o GameScene assim

class GameViewController: UIViewController {

    override func viewDidLoad() {

        super.viewDidLoad()

        // create a new scene
        let scene = GameScene(named: "art.scnassets/game.scn")!

        // retrieve the SCNView
        let scnView = self.view as! SCNView

        // set the scene to the view
        scnView.scene = scene

        // Should print "someMethod called"
        scene.someMethod()
    }
}

No entanto, a chamada paraGameScene.someMethod() desencadeia umEXEC_BAD_ACCESS erro.

Além disso, se eu omitir a chamada paraGameScene.someMethod, a cena carrega corretamente, mas o inicializador substituído emGameScene não parece ser chamado.

Não tenho certeza do que está acontecendo aqui. É claro que há algo sobre subclasses no Swift que eu não entendi. Ou talvez haja algum aspecto da ordem em que as coisas sejam executadas que eu perdi.

questionAnswers(2)

yourAnswerToTheQuestion