#pragma mark SA_OAuthTwitterControllerDelegate
- (void) OAuthTwitterController: (SA_OAuthTwitterController *) controller authenticatedWithUsername: (NSString *) username {
NSLog(@"Authenicated for %@", username);
[_btnTwitter setTitle:username forState:UIControlStateNormal];
}
我有这个代码用于显示twitter的用户名,它运行良好,但是当我导航到另一个页面然后回来时按钮的标题用户名消失了,我知道我们必须在viewwillapper中设置一个NSUserDefault值来检查用户名是否存在。但我不知道如何处理nSUserDefault,如果有人有想法解决这个问题,请帮助我。 提前致谢。 编辑:
- (void)viewWillAppear:(BOOL)animated{
//Sets up the NSUserDefaults
//Sets up the NSUserDefaults
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
//Checks if there is a saved User Name
if([defaults objectForKey:@"kTwitterUserName"])
NSString *username = [defaults objectForKey:@"kTwitterUserName"];
[_btnTwitter setTitle:username forState:UIControlStateNormal];
else
{
}
这就是我的观点 和
- (void) OAuthTwitterController: (SA_OAuthTwitterController *) controller authenticatedWithUsername: (NSString *) username {
NSLog(@"Authenicated for %@", username);
[_btnTwitter setTitle:username forState:UIControlStateNormal];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:username forKey:@"kTwitterUserName"];
[defaults synchronize];
}
这就是我的twiter方法看起来像
答案 0 :(得分:3)
NSUserDefaults非常易于使用。它们有点像字典,你设置一个对象和一个键。所以要做你想做的事,你可以使用类似下面的东西:
//This just sets up the defaults - similar to allocating a dictionary
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
然后,要设置默认值中的对象,可以设置如下对象/键对:
[defaults setObject:username forKey:@"kTwitterUserName"];
在某些时候调用此方法非常重要:[defaults synchronize];
。这显式保存了默认值。因此,您可以在设置用户名密钥后立即执行此操作。
然后阅读保存的用户名:
NSString *username = [defaults objectForKey:@"kTwitterUserName"];
您的oAuth方法应如下所示:
- (void) OAuthTwitterController: (SA_OAuthTwitterController *) controller authenticatedWithUsername: (NSString *) username {
//Any thing else you want to do - NSLogs, etc.
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:username forKey:@"kTwitterUserName"];
[defaults synchronize];
}
所以你的viewWillAppear
看起来像这样:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
//Sets up the NSUserDefaults
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
//Checks if there is a saved User Name
if([defaults objectForKey:@"kTwitterUserName"]) {
NSString *username = [defaults objectForKey:@"kTwitterUserName"];
} else
//Do something else because there is no saved username
NSLog(@"no username saved");
}
如果您需要任何澄清,请在评论中告诉我。
答案 1 :(得分:0)
你想要以某种方式保存这个方面是正确的,NSUserDefaults可以正常工作。保存和阅读样本如下:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// saving an NSString
[prefs setObject:@"username" forKey:@"UsersUsername"];
// reading an NSString
NSString *theString = [prefs stringForKey:@"UsersUsername"];
答案 2 :(得分:-1)