如何保存对象(保存/加载游戏)
Posted
技术标签:
【中文标题】如何保存对象(保存/加载游戏)【英文标题】:How to save objects (save/load a game) 【发布时间】:2012-10-14 09:54:59 【问题描述】:我目前正在寻找一种在我正在开发的 Iphone 应用程序中保存对象的方法。由于该游戏涉及清除“关卡”,因此我希望能够在某处存储一个数组以指示已完成哪些关卡。但是,这必须与游戏无关,因为退出游戏一定不会导致数据丢失。我该怎么做?
【问题讨论】:
检查链接。希望对你有帮助)***.com/questions/2206013/… 【参考方案1】:保存还原对象的最简单方法是 NsUserdefaults。
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// saving an NSString
[prefs setObject:@"TextToSave" forKey:@"keyToLookupString"];
// saving an NSInteger
[prefs setInteger:42 forKey:@"integerKey"];
// saving a Double
[prefs setDouble:3.1415 forKey:@"doubleKey"];
// saving a Float
[prefs setFloat:1.2345678 forKey:@"floatKey"];
[prefs synchronize];
用于检索
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// getting an NSString
NSString *myString = [prefs stringForKey:@"keyToLookupString"];
// getting an NSInteger
NSInteger myInt = [prefs integerForKey:@"integerKey"];
// getting an Float
float myFloat = [prefs floatForKey:@"floatKey"];
对于其他类型的对象
[prefs objectForKey:@"anyObjectKey"];
【讨论】:
非常有帮助,我一定会试试这个。谢谢! 不要忘记[prefs synchronize];写入用户默认值后。否则,您将无法保存它们。 我一定会记住的。 一般不需要手动调用synchronize
。请参阅synchronize
的讨论“因为此方法会定期自动调用,因此仅当您无法等待自动同步(例如,如果您的应用程序即将退出)或您想要更新用户时才使用此方法即使您没有进行任何更改,也默认为磁盘上的内容。"【参考方案2】:
小块数据
使用NSUserDefaults
。例如,您还可以使用https://github.com/MugunthKumar/MKiCloudSync 将NSUserDefaults
同步到iCloud。因此,即使用户再次删除并安装您的应用程序,进度也会被保存,...
大量数据
例如使用CoreData
和sqlite
。
【讨论】:
非常感谢,NSUserDefaults
看起来非常适合这样的小任务! :)以上是关于如何保存对象(保存/加载游戏)的主要内容,如果未能解决你的问题,请参考以下文章