我有一个升级场景,用户可以升级游戏的不同属性,并且我希望保存这些信息。例如,当用户花费1000点将mag升级到5时,我希望为下次启动应用程序保存该信息。我被告知NSUserDefaults是一个很好的方法来做到这一点。这是正确保存/加载mag int的正确方法吗?用NSUserDefaults保存/加载数据(cocos2d iphone)
-(void)plusFiveMag:(id)sender {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:NSNumber numberWithInt:mag forKey:@"mag"];
mag += 5;
}
-(void)viewDidLoad {
[super viewDidLoad];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:NSNumber numberWithInt:mag forKey:@"mag"];
}
它看起来并不比其他方法简单得多。如果我还需要在其他地方使用'mag'? – Joethemonkey101 2011-06-11 21:47:37
这就是我的意思,它更简单。其他方法迫使你重复“设置伊娃和设置NSUserDefaults”每一个你碰到mag的地方。它在一个地方(访问者),只要你总是使用“self.mag”,它就会透明地做正确的事情,如果你改变了存储mag的方式,你就把它修复在一个地方,而不是每个使用mag的地方。此外,这消除了在viewDidLoad中初始化所涉及的所有时间问题(这可以在创建对象后运行很长时间,并且可以运行多次)。 – 2011-06-12 17:59:01
事情是我创建d'mag'作为另一个类中的int。是否必须将其更改为NSNumber,并且是否必须执行任何特殊操作才能将其导入此类中? – Joethemonkey101 2011-06-12 21:16:56