我有3个视图控制器,每个控制器上都有一个名为Count的int。Count是用户的最高分,这是我想保留的,即使应用被杀死。
这是一个整数;
int Count = 100;
这是分数显示的地方(ViewDiDLoad内的UILabel);
scoreCounter.text = @"";
这是我调用它的代码(Inside IBAction);
NSString *numValue = [[NSString alloc] initWithFormat:@"%d", Count--];
scoreCounter.text = numValue;
[numValue release];
基本上每次我按下按钮,分数就会下降。上面的代码在三个不同的视图控制器中,像这样打开;
if(Count == 90)
{
SecondLevelViewController *screen = [[SecondLevelViewController alloc] initWithNibName:nil bundle:nil];
screen.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:screen animated:YES];
[screen release];
我需要的是一种方法来保存这个分数,并保存最后使用的视图控制器,这样,如果分数是90,应用程序将启动SecondViewController
NSUserDefaults
是有用的。
[[NSUserDefaults standardUserDefaults] setInteger:Count forKey:@"Count"];
加载:
Count = [[NSUserDefaults standardUserDefaults] integerForKey:@"Count"];
因为一开始没有值,你的第一次加载将给你0而不是100。这可以通过设置一个默认值来解决。
NSDictionary *defaults = @{ @"Count" : @100 };
[[NSUserDefault standardUserDefaults] registerDefaults:defaults];
将此代码添加到您的应用程序启动中,例如在app delegate application:didFinishLaunchingWithOptions:
方法中。