0

我在我的应用程序中使用了 NSUser Defaults,通常它会在注册时存储用户数据,并在注销时删除这些数据。因此,当用户注册然后登录时,NSUser Defaults 中存储的数据使自动登录部分生效,即使用户关闭应用程序并再次打开它也是如此。

但问题是,当用户注销时,它要求他重新注册。我想要的是,如果用户注册,该信息应该永久存储,当他退出时,它不应该要求他再次注册,因为它应该只清除登录页面的内存,以便其他用户可以使用同一个应用程序。

我正在使用iOS 5。那么,我可以在我的应用程序中同时使用SQLite数据库(永久存储注册信息)和NSUser Defaults(清除登录页面的内存)吗?或者有任何替代解决方案吗?

4

2 回答 2

2

如果您使用自动登录系统并存储用户名和密码,您应该使用钥匙串,而不是 NSUSerDefaults

阅读此处了解有关使用钥匙串的更多详细信息。

您还可以使用钥匙串来控制登录会话,我不确定,但我认为即使用户删除了他们的应用程序,详细信息也会保留在钥匙串中,以防他们重新安装应用程序

于 2012-10-18T04:51:56.163 回答
1

似乎您的应用程序处于脱机状态,并且多个用户可以在同一个应用程序(手机)中注册登录,所以我认为最好的方法是将注册数据保存在sqlite数据库中(您可以使用coredata)和NSUserDefaults中的登录信息 。因此,当用户注销时,您只需清除您的 NSUserDefaults 值。同样在登录时,您可以从数据库中检查用户是否存在,因为所有已注册的用户数据都存储在您的数据库中。此外,如果有用户可以删除他的帐户的功能,那么只需从数据库中清除该用户条目。希望这可以帮助....

于 2012-10-18T04:38:29.467 回答