【问题标题】:Save a set of integers iPhone保存一组整数 iPhone
【发布时间】:2011-04-26 14:18:18
【问题描述】:

在我的游戏中,我想保存一组整数作为统计数据玩家可以查看的。例如死亡人数。这是一个 int,我只是在他们每次游戏结束时增加一个。

我怎样才能保存它,然后在我重新启动游戏时以那个数字保存它?

谢谢。

编辑:

好的,在阅读了几个答案后,我认为写到 plist 是前进的方向。我一直在看教程,但可以说我试试这个:

scoreData *score = [scoreData sharedData];
[dictionary setValue:score.highScore forKey:@"key2"];
[dictionary writeToFile:@"stats.plist" atomically:NO];

我已经使用我的分数访问了我的单身人士。现在,当尝试 setValue 时,我收到一条错误消息,提示我正在尝试将 int 转换为对象。

我不确定如何处理它。这似乎很简单,但我所看到的任何地方似乎都给出了基本相同的方法。

感谢您迄今为止的帮助,不胜感激。

【问题讨论】:

    标签: iphone objective-c save int


    【解决方案1】:

    我不会滥用 NSUserDefaults(Apple 在今年的 WWDC 上不鼓励这样做)。相反,为什么不简单地创建一个 NSMutableDictionary 然后在其中存储 NSNumber 对象。 MutableDictionary 可以很容易地写入文件并且很容易读入。

    【讨论】:

      【解决方案2】:

      很多方法。

      如果您只是保存这个以及其他一些简单的事情,那么使用用户默认值可能是最好的主意。

      但是,如果您要保存的项目多于几项,则可能需要使用自己的属性列表(如果项目数量少于 200 个左右)。

      如果您有很多设置,我通常建议人们改用 Core Data。它有很多项目,速度很快,而其他两个则没有那么多。

      【讨论】:

      • 属性列表文件也是个好主意。不过,仅针对几个整数的核心数据非常雄心勃勃:)
      • 是的,但我不知道他是否有其他事情在幕后发生,或者他可能想要保存什么。还不如把它放在桌子上,让他决定哪个适合他的情况。 :)
      【解决方案3】:

      试试……

      [[NSUserDefaults standardUserDefaults] setInteger:highScore forKey:@"HighScore"];
      highScore = [[NSUserDefaults standardUserDefaults] integerForKey:@"HighScore"];
      

      【讨论】:

      • 您的代码的第一行是错误的。 -setValue:forKey: 不存在。你想要-setInteger:forKey:
      • @Jer 试图从记忆中做到这一点。固定的。所以 obj-c 验证器将是一个不错的补充。谢谢;)
      【解决方案4】:

      您可以写入文件(即普通 C 函数 fopen() 等),可以使用自己的类并使用 NS(Keyed)Archiver,或使用 NSUserDefaults 保存数据。

      【讨论】:

      • 在这些替代方案中,NSUserDefaults 似乎最合适。
      猜你喜欢
      • 2010-09-25
      • 1970-01-01
      • 1970-01-01
      • 2022-01-27
      • 2016-04-30
      • 2015-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多