如何在我的iOS应用程序中保存登录数据

时间:2012-05-02 12:38:29

标签: iphone objective-c ios

我真正想要的是什么:

我有一个登录系统。每当用户登录他的帐户时,该应用程序将获得一个唯一的id作为json响应。 现在我要做的是在整个应用程序中使用此ID,因为用户使用他/她的唯一ID访问他的个人资料,并通过相同的唯一ID发送/rcvs个消息。

我需要在整个应用程序中携带此ID。即使应用程序崩溃或关闭。用户返回应用程序后,用户直接登录而不显示登录屏幕。此外,只有当用户点击退出按钮时,此ID才会被删除或变为空。

这是我的代码: http://www.pastie.org/3848543

我相信我应该使用以下其中一项:

  1. 的plist
  2. NSUserDefaults的
  3. 的appDelegate

5 个答案:

答案 0 :(得分:5)

你可以使用nsuserdefaults来解决这个问题。

这是一个示例代码:

NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
    if([standardUserDefaults objectForKey:@"your-key-goes-here"] == nil)
        [standardUserDefaults setBool:YES forKey:@"your-key-goes-here"];

您可以像上面一样检查您的密钥是否存在,当您得到答案时,您可以像上面那样设置它,但当然使用如下方法:

[standardUserDefaults setValue:@"your-value" forKey:@"your-key-goes-here"];

然后最后你应该同步用户默认,如:

[standardUserDefaults synchronize];  

希望这会有所帮助..

答案 1 :(得分:1)

我错了吗?我认为这个问题可以通过 cookie 来解决 用户登录时设置ID并随时更改? 此外,您可以轻松阅读cookie中的信息。

答案 2 :(得分:1)

排序fr并使用NSDefaults存储此ID 第二个选项是在app delegate中添加一个属性并为其分配valut

答案 3 :(得分:1)

我建议您使用NSUserDefaults,并建议您自己。如果将其保存在任何本地文件(例如plist)中,则需要加密文件或登录数据,否则其他任何人都可以清楚地看到它(因此安全性很低)。

使用我不确定的appDelegate是什么意思,因为appDelegate只不过是一个委托类。使用可以使用委托方法来验证用户,但这仍然会让您回到最初的问题。

答案 4 :(得分:1)

NSUserDefaults * standardUserDefaults = [NSUserDefaults standardUserDefaults];     if([standardUserDefaults objectForKey:@“key”] == nil)         [standardUserDefaults setBool:YES forKey:@“key”];

[standardUserDefaults setValue:@“your-value”forKey:@“key”];

[standardUserDefaults synchronize];