Swift:高分/NSUserDefaults

标签 swift sprite-kit nsuserdefaults

我对 NSUserDefaults 有疑问。

我遵循史蒂夫的回答: Saving highscores with NSUserDefaults

现在,我遇到了一个问题。当我的 GameScene 即将结束时,在初始化到 GameOverScene 的传输之前,我执行以下操作:

    if scene.score > Score.highScore {
        var defaults = NSUserDefaults()
        defaults.setInteger(scene.score, forKey: "highScore")
        println("score1, highscore1")
        println(scene.score)
        println(Score.highScore)
    }

你可以看到我将游戏场景得分与最高分进行比较,然后将最高分的整数设置为该玩家获得的场景得分。 然而,程序正确地打印出了当前分数,而 highScore 保持不变,为 0。 在我尝试做之前:

Score.HighScore = scene.score // changing Score.HighScore to the scene.score manually. 

不幸的是,没有成功。 这是完整的 HighScore 类,用于处理保存和检索高分: http://pastebin.com/dz3b3WAk

感谢任何帮助。

编辑:或者也许,有人知道将某些内容保存到 NSUserDefaults 的更简单的解决方案,而不需要那么复杂?

最佳答案

史蒂夫在该相关问题中的回答根本不使用 NSUserDefaults,而是从应用程序文档目录中的“highScore.archive”文件存储中存档和检索高分。

您提出的任何解决方案都应该忘记用户默认值,而依赖于您实例化的 HighScore 对象(该对象加载并保存到 highScore.archive 文件中)。

关于Swift:高分/NSUserDefaults,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27089189/

相关文章:

ios - 如何推送不在导航 Controller 中的 View Controller ? swift

ios - 如何在应用程序内浏览器中打开在我的 iOS 应用程序中单击的任何 URL?

ios - 从 SKS 文件加载节点时使用的初始化器

ios - 在 UitableView 中从 webservice 加载数据

ios - Swift 中的 EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)

ios - 获取 NSUserDefaults Nil 对象

ios - 如何搜索多个项目或搜索而不考虑 UISearchBar 的位置

swift - "didReceiveRegistrationToken"没有给我 fcmToken?

swift - 没有颜色的淡入淡出过渡?

ios - SKPhysicsBody 在错误的位置