在不同的视图控制器中保存并加载整数分数

时间:2013-02-27 22:45:26

标签: ios uiviewcontroller

我有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。

1 个答案:

答案 0 :(得分:1)

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