好的,对不起,如果这很简单,但是......我正在制作一款适合iPhone的游戏,我有一个高分列表 - 好吧,不是一个列表,而是一堆整数,我只有使用NSUserDefaults保存,工作正常。我的问题是我已经扩展了我的游戏,并且有超过30个关卡和3种模式(90个高分)我终于意识到即使它有效,这也变得荒谬了。我在网上搜索,但没有太多关于NSArrays的具体信息,尽管在Stack Overflow的高分查询中它们被提到了很多。我也意识到我可能不得不将每个项目保存为NSUserDefault ......所以它还有帮助吗?除非有某种NSUserDefaultArray ...但是数百个整数(并且还在增长)似乎已经失控。
答案 0 :(得分:1)
我在这里听到两个问题:
1)如何将整数打包到NSArray中:
查看Apple Docs“收藏集编程主题,数组:有序集合”。它有方便的代码片段。
请注意,您必须将整数包装到NSNumbers中才能将它们存储在数组中。有关代码段,请参阅“数字和值编程主题,使用数字”。
2)如何坚持(存储)高分整数:
我的猜测是大多数游戏程序员将这类东西存储在数据库中,这意味着你需要了解如何使用相当复杂的Core Data / SQLite。但无论如何,你最终都想了解这一点,并且你将能够以这种方式持久保存其他游戏数据,从而增强你的应用程序。
顺便提一下,Core Data没有数组数据类型。你必须使用“可转换”的attr。但是,如果为托管对象类创建显式的h和m文件,则只需将该属性重新键入为NSArray,如下所示:
@property (nonatomic, retain) NSArray *arrayHighScores;
然后您可以将此attr视为常规NSArray。
Hillegasse的Cocoa Programming for Mac可以为您提供有关Core Data的骨干知识,还有其他书籍可以帮助您将其应用到iPhone。
或者,请查看此链接:Storing custom objects in an NSMutableArray in NSUserDefaults