我真正想要的是什么:
我有一个登录系统。每当用户登录他的帐户时,该应用程序将获得一个唯一的id作为json响应。
现在我要做的是在整个应用程序中使用此ID,因为用户使用他/她的唯一ID访问他的个人资料,并通过相同的唯一ID发送/rcvs
个消息。
我需要在整个应用程序中携带此ID。即使应用程序崩溃或关闭。用户返回应用程序后,用户直接登录而不显示登录屏幕。此外,只有当用户点击退出按钮时,此ID才会被删除或变为空。
这是我的代码: http://www.pastie.org/3848543
我相信我应该使用以下其中一项:
答案 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];