如何在应用程序中保存用户信息

问题描述:

我通过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

您在您的视图控制器重新设置默认值时,要进行检索它们,以显示他们呢? 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