在不同的视图控制器中保存和加载integer score



我有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:方法中。

最新更新