Iphone 验证NSUserDefaults中是否存在名称和密码以跳过登录/屏幕

Iphone 验证NSUserDefaults中是否存在名称和密码以跳过登录/屏幕,iphone,login,nsuserdefaults,root.plist,Iphone,Login,Nsuserdefaults,Root.plist,我有一个Tabbar/Tableview应用程序,可以在应用程序加载时以模式加载登录/注册视图,我在设置包中为名称和密码设置了Root.plist,并成功检索了项目。我想做两件事: 1) 执行测试以查看NSUserDefault字符串是否为空,如果为空,请加载登录/注册视图 2) 如果字符串可用,则使用字符串内容登录到my Webservice 提前谢谢 这是我的LoginViewController.m: @synthesize usernameField; @synthesize passw

我有一个Tabbar/Tableview应用程序,可以在应用程序加载时以模式加载登录/注册视图,我在设置包中为名称和密码设置了Root.plist,并成功检索了项目。我想做两件事:

1) 执行测试以查看NSUserDefault字符串是否为空,如果为空,请加载登录/注册视图

2) 如果字符串可用,则使用字符串内容登录到my Webservice

提前谢谢

这是我的LoginViewController.m:

@synthesize usernameField;
@synthesize passwordField;
@synthesize loginButton;
@synthesize loginIndicator;
@synthesize usernameLabel;
@synthesize passwordLabel;





-(void)refreshFields {
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    usernameLabel.text = [defaults objectForKey:kUsernameKey];
    passwordLabel.text = [defaults objectForKey:kPasswordKey];

}
- (void)viewDidAppear:(BOOL)animated {
    [self refreshFields];
    [super viewDidAppear:animated];
}
- (void)viewDidLoad {
    [super viewDidLoad];
    [self refreshFields];

[self.navigationController setNavigationBarHidden:YES animated:NO];
}



- (IBAction) login: (id) sender
{

    {

 NSString *post =[NSString stringWithFormat:@"username=%@&password=%@",usernameField.text, passwordField.text];     


   NSString *hostStr = @"http:~iphone_login.php?";
    hostStr = [hostStr stringByAppendingString:post];
    NSData *dataURL =  [NSData dataWithContentsOfURL: [ NSURL URLWithString: hostStr ]];    
    NSString *serverOutput = [[NSString alloc] initWithData:dataURL encoding: NSASCIIStringEncoding];

NSLog(@"Site: %@",hostStr); 
NSLog(@"Site: %@",serverOutput);    



if([serverOutput isEqualToString:@"Yes"]){


    UIAlertView *alertsuccess = [[UIAlertView alloc] initWithTitle:@"Congrats" message:@"You are authorized "
                                                              delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];

        [alertsuccess show];
        [alertsuccess release];

我不会将用户名和密码直接存储到label.text中,但这是您的程序。对于空复选框,请尝试以下操作:

if ([usernameLabel.text length] == 0 || [passwordLabel.text length] == 0)
    [self loadLoginView];
else
    [self login:nil];

您还可以尝试stringForKey:kUsernameKey而不是objectForKey。最后,请确保您的用户名和密码不只是空白,现在我假定您在保存到NSUserDefaults之前进行了检查。

测试正常,但我不确定命令,[self-loadLoginView]是否加载了我的LoginView.xib?我正在寻找它继续加载视图。[self login]是否运行-(iAction)登录:(id发送者?我在声明“ViewController可能不响应”这两个命令时出错。应该是[self login:nil],抱歉。[self-loadLoginView]只是你自己函数的虚拟占位符,它应该加载你的LoginView.xib文件。通常它与LoginView.m和LoginView.h文件一起提供,所以“仅仅”加载xib文件。谢谢,所有这些都在我的LoginView.m类中,LoginView控制器是从AppDelegate.m文件以模式启动的。你知道这应该放在哪里吗?我问了一个新问题,这个问题在我们结束的地方继续。