2

我到底想要什么:

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

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

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

我相信我应该使用以下之一:

  1. 列表
  2. NSUserDefaults
  3. 应用委托
4

5 回答 5

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];  

希望这可以帮助..

于 2012-05-02T12:47:39.177 回答
1

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

于 2012-05-02T12:41:44.220 回答
1

排序 fr 并使用 NSDefaults 存储此 ID,第二个选项是在应用程序委托中添加一个属性并为其分配价值

于 2012-05-02T12:54:00.980 回答
1

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

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

于 2012-05-02T13:19:45.927 回答
1

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

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

[标准用户默认同步];

于 2012-05-03T05:49:29.357 回答