我对ios开发很新,我的所有经验都是在php和MySQL中。在对我的应用程序中保存玩家游戏的最佳方法进行了一些研究之后,我认为核心数据是要走的路。或者游戏可以保存到我自己的服务器上。
在玩RPG方面考虑一下,只要你获得一种新武器,你的游戏就需要记住,所以当你重新登录时,你仍然拥有这种武器。
我是否正在考虑使用核心数据的方法?此外,实施的想法会很棒! (在找到新项目后,它是否在每次按钮时都保存到db?它是否每隔30秒运行一次保存脚本?)
谢谢你们!很抱歉这样一个基本的noob问题,很难找到这方面的文档。
答案 0 :(得分:1)
我认为NSUserDefaults可能是最简单的方法。
NSArray *weapons = @[@"Machine Gun",@"Hand Gun"];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:weapons forKey:@"weapons"];
并检索此类数据
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
_weapons = [defaults objectForKey:@"weapons"];
唯一要记住的是对象只能是NSData,NSString,NSNumber,NSDate,NSArray或NSDictionary。对于NSArray和NSDictionary对象,它们的内容必须是属性列表对象。
答案 1 :(得分:0)
实际上,如果您对iOS比较陌生,如果数据存储需求不是很大,我可能会引导您远离Core Data。 (我发布的应用程序中约有80%使用Core Data来保持对象图的持久性;但即使Apple的Core Data文档也提到它并不是平台上的入门级技术。 )
在不了解数据持久性需求的复杂性和强度的情况下,很难确定;但只是将对象图与磁盘进行序列化/反序列化可能是最有意义的。您的模型对象需要采用NSCoding
协议。
我不确定您是否需要使用每个新找到的项目或每 n 秒将对象图表保存到磁盘。您希望在应用程序生命周期的关键点进行存档和保存,例如:当应用程序进入后台时。但是如果您正在设计游戏,也许您需要离散的保存点,允许用户指定保存点。这一点不依赖于你如何持久保存对象图,而是依赖于你如何选择设计它。