2013-10-24 43 views
0

嗨我想做這樣的事情。我的申請有註冊過程。當用戶在註冊頁面輸入他們的電話號碼並點擊註冊時,用戶將獲得PIN碼作爲短信。此外,用戶重定向到PIN驗證ViewController如何在手機內存儲應用程序狀態

我想要做的是保持用戶在應用程序中的當前狀態。這意味着,如果用戶輸入電話號碼,並且在獲取短信而不輸入PIN碼給他,他可以關閉該應用程序。所以下次他打開應用程序時,它應該加載Verification ViewController。爲了做到這一點,我必須保持我的手機內的應用程序的狀態。

我如何存儲這個。我可以使用KeychainItemWrapper嗎?如果是這樣,我可以通過更改識別名稱來製作幾個KeychainItems

請幫幫我。

感謝

+0

將其存儲在應用程序關閉後? – user2889249

回答

0

是NSUserDefaults的走最簡單的方法:

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

,並檢索:

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

是的,它會留在應用程序關閉後。

+0

如何保持一個用戶默認通過整個應用程序。我的意思是我想在許多Viewcontrollers中添加幾個狀態。作爲驗證視圖控制器中的一個示例,我希望將狀態保持爲驗證狀態,在登錄視圖控制器中,它應該更新爲已記錄類似 – user2889249

+0

只需使用相同的密鑰並更改其值即可。 –

+0

當我把NSUserDefaults *默認值= [NSUserDefaults standardUserDefaults];它不會每次都創建一個新的對象? – user2889249

1

您可以使用NSUserDefaults

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

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

    NSString *registrationStatus; 
    if (![defaults [email protected]"registrationStatus"]) 
     registrationStatus = @"notRegistered"; 
    else 
     registrationStatus = [defaults [email protected]"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; 
} 
相關問題