您可以使用NSUserDefaults 类作为最简单的解决方案...
在您的 GameplayScene 中,您将分数设置到持久存储中。
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setInteger(score, forKey: "scoreKey")
defaults.synchronize()
稍后在 GameOver 场景中,您会像这样读取持久存储:
let defaults = NSUserDefaults.standardUserDefaults()
let score = defaults.integerForKey("scoreKey")
println(score)
关于 synchronize() 方法(来自文档):
因为此方法会定期自动调用,
仅当您不能等待自动
同步(例如,如果您的应用程序即将退出)或
如果您想将用户默认更新为磁盘上的内容,即使
您没有进行任何更改。
或者我猜你可以在 GameOver 场景中创建一个公共属性(分数),并在过渡时使用当前分数设置该属性(来自 Gameplay 场景)。
同样,您可以为每个节点都具有的userData 属性设置一个值,如下所示:
newScene.userData?.setValue(score, forKey: "scoreKey")
编辑:
如果您对持久性感兴趣(在应用程序启动之间提供一个值),NSUserDefaults 将是一种首选方式。否则,您可以使用 userData 或 KnightOfDragon 在他的示例中指出的结构。