在iOS游戏中存储高分的安全方式?

时间:2015-02-03 18:50:03

标签: ios swift sprite-kit

我正在开发一款几乎已经完成的游戏,所以我已经到了必须在本地存储用户的高分的位置。在游戏中存储高分的最安全方式是什么?有人认为NSUserDefaults不是一种安全的方式,因为用户可以操纵他们的高分,例如他们越狱。

我是Spritekit编程的新手,所以请您建议存储不太复杂的高分的最佳方法。如果你也提供一个例子那么它会很棒,否则就没问题了。

谢谢

1 个答案:

答案 0 :(得分:4)

您无法保护您的分数免受越狱用户的侵害。因为他们有时甚至可以在将其上传到游戏中心等之前操纵高分。

此外,努力必须与结果相匹配。您可以使CoreData-DB保存三个数字。但这将是一种矫枉过正。您必须编写大量代码来保存一个数字。

所以我认为对于没有复杂系统的大多数游戏都有项目,选择等。使用NSUserDefaults大多数都可以。

所以我会保持简单并使用NSUserDefaults

func saveHighscore(highscore:Int){

    //Check if there is already a highscore
    if let currentHighscore:Int = NSUserDefaults.standardUserDefaults().valueForKey("highscore") as? Int{
        //If the new highscore is higher then the current highscore, save it.
        if(highscore > currentHighscore){
            NSUserDefaults.setValue(highscore, forKey: "highscore")
        }
    }else{
        //If there isn't a highscore set yet, every highscore is higher then nothing. So add it.
        NSUserDefaults.setValue(highscore, forKey: "highscore")
    }
}