#pragma mark SA_OAuthTwitterControllerDelegate
- (void) OAuthTwitterController: (SA_OAuthTwitterController *) controller authenticatedWithUsername: (NSString *) username {
NSLog(@"Authenicated for %@", username);
[_btnTwitter setTitle:username forState:UIControlStateNormal];
}我有这个代码为推特显示用户名,它工作得很好,但当我导航到另一个页面,回来的标题用户名的按钮消失,我知道我们必须在视图中设置一个NSUserDefault值检查用户名是否存在或not.But我不知道如何处理的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];
}下面是我的twitermethod的样子
发布于 2011-11-23 14:58:39
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");
}如果你需要任何澄清,请在评论中告诉我。
发布于 2011-11-23 14:47:41
你的观点是正确的,你想以某种方式保存它,而NSUserDefaults在这方面工作得很好。保存和读取样本如下:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// saving an NSString
[prefs setObject:@"username" forKey:@"UsersUsername"];
// reading an NSString
NSString *theString = [prefs stringForKey:@"UsersUsername"];发布于 2011-11-23 15:20:17
http://www.icodeblog.com/2008/10/03/iphone-programming-tutorial-savingretrieving-data-using-nsuserdefaults/了解更多详细信息
https://stackoverflow.com/questions/8238238
复制相似问题