2012-03-26 103 views
2

我通過textifields向我的upp輸入一些用戶信息。我希望我的應用程序保存這些信息,並且每當我的應用程序打開時,都使用相同的信息。我使用NSUserDefaults,但如果我從RAM(意味着,從正在運行的進程)清理應用程序並嘗試統計/打開我的應用程序,它會崩潰。我必須使用什麼來始終保存用戶信息。如何在應用程序中保存用戶信息

編輯

保存我的數據在AppDelegate中,當用戶點擊home鍵我想,用戶的相關信息進行保存。這裏是我的代碼:

- (void)applicationDidEnterBackground:(UIApplication *)application 
    { 
     NSLog(@"url in background: %@", mainUrl); 
//uName and passwd are strings that come from other classes 
     NSUserDefaults *name=[NSUserDefaults standardUserDefaults]; 
     [name setObject:uName forKey:@"userNameDefault"]; 

     NSUserDefaults *passWd=[NSUserDefaults standardUserDefaults]; 
     [passWd setObject:passwd forKey:@"passwordDefault"]; 
    } 

EDIT 2

我儘快做到這一點,因爲我收到來自服務器在我的第一個視圖控制器的響應。我用sturtup這三個數據對象,但仍崩潰

NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults]; 
      [defaults setObject:_username.text forKey:@"userNameDefault"]; 
      [defaults setObject:_password.text forKey:@"passwordDefault"]; 
      [defaults setObject:_server.text forKey:@"serverDefault"]; 
+0

NSUserDefaults是正確的方法。顯示一些代碼如何實現它。 – Darren 2012-03-26 21:47:27

+0

@Darren你能看到我的編輯 – ilhnctn 2012-03-26 21:55:37

+0

它沒有必要聲明NSUser默認值兩次。只需使用NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]然後使用[默認setobject ...對於兩者。但是,這不是你的問題。你說它重新啓動應用程序時崩潰,啓動時使用了什麼代碼? – Darren 2012-03-26 22:11:17

回答

1

您在您的視圖控制器重新設置默認值時,要進行檢索它們,以顯示他們呢? uName = [defaults objectForKey @「userNameDefault」]

+0

不,我不再設置它們。我從班上刪除了第一面(但它仍然停留在這個問題上)。我創建了所有的方法,我使用這些信息向我的HTTP服務器發送GET請求,我是否也需要更改這些代碼? – ilhnctn 2012-03-26 22:32:56

+0

好吧,你還沒有顯示代碼,然後是什麼導致它在啓動時崩潰。哪種方法崩潰。 – Darren 2012-03-26 22:35:02

+0

啓動時使用3個數據對象。在嘗試使用它們之前,是否使用我發佈的方法從NSUserDefaults中獲取數據對象? – Darren 2012-03-26 22:36:48

相關問題