【问题标题】:Save the session even if the app is killed Objective C即使应用程序被杀死也保存会话目标 C
【发布时间】:2015-12-11 05:52:00
【问题描述】:

我正在用 Objective C 开发一个应用程序,一切都很酷,但我在这方面真的很新,所以我想知道是否有办法从已经登录到我的应用程序的用户那里保存会话,我保存用户名+密码,因为我稍后会使用它们,但是当我关闭应用程序时(杀死它),我必须再次登录,所以我希望你们能帮助我:

这是我在代码中保存会话的方式:

NSString *user = [textUser text];
NSString *password = [textPassword text];


[[NSUserDefaults standardUserDefaults] setObject:user forKey:@"userName"];
[[NSUserDefaults standardUserDefaults] setObject:password forKey:@"userPassword"];
[[NSUserDefaults standardUserDefaults] synchronize];//here is where i save the user info but i want it to stay even if the app is killed

所以我认为我需要的是一种检查 NSUserDefaults 是否为空的方法,然后直接进入我的主屏幕活动

谢谢!

【问题讨论】:

  • 太棒了,享受编码。

标签: objective-c session save nsuserdefaults


【解决方案1】:

我不确定,我是否正确理解了您的 Q!?你想知道如何检查,是否已经有登录数据?

NSString *user = [[NSUserDefaults standardUserDefaults] objectForKey:@"userName"];
if (user)
{
  // User name already has been stored
  …
}
else
{
  // User name is not stored
}

【讨论】:

  • 我希望它检查是否有已经登录的用户,如果有,我的应用程序会转到我的主屏幕
  • 你的两个代码实际上都解决了问题,非常感谢! @AminNegm-Awad
【解决方案2】:

使用此方法检查登录:

如果用户已经登录,则方法返回YES,否则返回NO

-(BOOL)CheckLogin{

    if ([[NSUserDefaults standardUserDefaults]valueForKey:@"userName"] && [[NSUserDefaults standardUserDefaults]valueForKey:@"userPassword"]) {

        //go straight to my home-screen-activity

        return YES;
    }
    else{

        //required to login
        return NO;
    }
}

希望这会有所帮助。

【讨论】:

  • 用户中未设置的键默认为在任何字典中返回nil,而不是@""
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多