如何在手机内存储应用状态

时间:2013-10-24 08:12:29

标签: ios

嗨我想做这样的事情。我的申请有一个注册过程。当用户在注册页面输入他们的电话号码并点击注册时,用户将获得一个PIN码作为短信。用户还可以重定向到PIN验证ViewController

我想要做的是让用户在应用程序中保持当前状态。这意味着如果用户输入电话号码,并且在收到短信而没有输入密码后,他可以关闭应用程序。因此,下次打开应用时,应加载验证ViewController。为此,我必须将应用程序的状态保留在手机中。

我如何存储这个。我可以使用KeychainItemWrapper吗?如果是这样,我可以通过更改标识名称来生成多个KeychainItems

请帮帮我。

由于

2 个答案:

答案 0 :(得分:1)

您可以使用NSUserDefaults

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // ...

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    NSString *registrationStatus;
    if (![defaults objectForKey@"registrationStatus"])
      registrationStatus = @"notRegistered";
    else
      registrationStatus = [defaults objectForKey@"registrationStatus"];


    if ([registrationStatus isEqualToString:@"notRegistered"]) {
        // show registration form

        // When sending the SMS, you store the current status in NSUserDefaults like this
        // [defaults setObject:@"registeredButNotValidated" forKey:@"registrationStatus"];
        // [defaults synchronize];
    } else if ([registrationStatus isEqualToString:@"registeredButNotValidated"]) {
        // show validation form

        // When validated, you store the current status in NSUserDefaults like this
        // [defaults setObject:@"registered" forKey:@"registrationStatus"];
        // [defaults synchronize];
    } else {
        // registered
    }

    return YES;
}

答案 1 :(得分:0)

NSUserDefaults是最简单的方法:

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:firstName forKey:@"firstName"];

并检索:

     NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSString *firstName = [defaults objectForKey:@"firstName"];

是的,它会在应用关闭后停留。