[英]NSUserDefault Doubts in iphone sdks
I have an application that backs up and restores notes to Evernote. 我有一个可以备份笔记并将笔记恢复到Evernote的应用程序。 Things are working well, but I'm having trouble when logging out and logging back in as a different Username and Password combination.
一切工作正常,但是以不同的用户名和密码组合注销并重新登录时遇到麻烦。
The first time I share my note with the initial values for Username/Password, it works correctly. 我第一次与用户名/密码的初始值共享笔记时,它可以正常工作。 However, logging out and back in with a different Username/Password posts my notes to the original account.
但是,使用其他用户名/密码注销并重新登录后,我的笔记就会发布到原始帐户中。
I have a Singleton class which writes the username/password to the NSUserDefaults and SFHFKeychainUtils. 我有一个Singleton类,它将用户名/密码写入NSUserDefaults和SFHFKeychainUtils。 Here is the login method:
这是登录方法:
NSError *error = nil;
NSString *unameever = _txtevernoteUsername.text;
NSString *pwdever = _txtevernotepasswrd.text;
[[NSUserDefaults standardUserDefaults] setObject:unameever forKey:@"usernameevernote"];
[[NSUserDefaults standardUserDefaults]synchronize];
[[NSUserDefaults standardUserDefaults] setObject:pwdever forKey:@"passwrdevernote"];
[[NSUserDefaults standardUserDefaults]synchronize];
BOOL flag = [SFHFKeychainUtils storeUsername:unameever andPassword:pwdever forServiceName:@"mybibleappever" updateExisting:TRUE error:&error];
Here is the connect method for sending the username/password: 这是发送用户名/密码的连接方法:
- (void) connect {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
//Checks if there is a saved User Name
if([defaults objectForKey:@"usernameevernote"]&&[defaults objectForKey:@"passwrdevernote"])
{
NSString *usernameever = [defaults objectForKey:@"usernameevernote"];
NSString *passwever = [defaults objectForKey:@"passwrdevernote"];
// Returned result from the Evernote servers after authentication
EDAMAuthenticationResult* authResult =[userStore authenticate:usernameever :passwever : consumerKey :consumerSecret];
Here is the log out method: 这是注销方法:
NSError *error = nil;
NSString *usernameever = [[NSUserDefaults standardUserDefaults] objectForKey:@"usernameevernote"];
BOOL flag = [SFHFKeychainUtils deleteItemForUsername:usernameever andServiceName:@"mybibleappever" error:&error];
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"usernameevernote"];
any problem with my code..please help me to do this. 我的代码有任何问题..请帮助我做到这一点。
Here are some tips: 这里有一些提示:
You only have to call [[NSUserDefaults standardUserDefaults]synchronize] once, at the end of setting your values. 设置值结束时,只需调用一次[[NSUserDefaults standardUserDefaults] synchronize]。
It doesn't seem like you're deleting the standardUserDefaults value in the logout, which might be why you are getting the same login/user persisting. 似乎您没有在注销中删除standardUserDefaults值,这可能就是为什么您保持相同的登录名/用户的原因。
From the code you posted it looks like you're storing but never using the value in SFHFKeychainUtils 从您发布的代码来看,您似乎正在存储,但从未使用SFHFKeychainUtils中的值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.