如果声明在第一次运行时未检查条件

时间:2011-03-23 01:17:17

标签: iphone cocoa xcode

只是一个小问题。我的应用程序使用NSUserDefaluts存储一些登录信息,并使用IF语句来检查文件是否存在,如果是,则加载第二个视图,如果没有则进入登录屏幕。

一旦用户输入姓名,电子邮件等,他们按下go按钮保存详细信息并进入第二视图但是用户必须按两次go按钮才能将应用程序带到第二个屏幕。我认为IF语句在第一次运行时没有找到保存的详细信息,因此需要再次按下该按钮。

我如何克服这个问题,因为这对用户来说非常令人沮丧。我在下面提供了我的代码。对代码的解释将非常感激。

-(IBAction)LogInButton:(id)sender {

NSString *tempStr = [[NSUserDefaults standardUserDefaults] objectForKey:@"UserName"];

  if (tempStr == nil || [tempStr isEqualToString:@""]) {

    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    [prefs setObject:Name.text forKey:@"UserName"];
    [prefs synchronize];


    ClubSearchViewController *CSearch = [[ClubSearchViewController alloc] initWithNibName:@"ClubSearchViewController" bundle:nil];
    [self presentModalViewController:CSearch animated:YES];


  }
  else {
     SearchMenu *SMenu = [[SearchMenu alloc]initWithNibName:@"SearchMenu" bundle:nil];
     [self presentModalViewController:SMenu animated:YES];
  }
}

提前致谢。

1 个答案:

答案 0 :(得分:1)

代码必须进入两个路径之一并呈现一些东西,如果它没有出现在第一次按下,这意味着它没有达到该代码。设置断点以确保它是。

if语句应该是:

if ( tempStr.length == 0 )

由于你可以将消息传递给nil,如果字符串为空或为零,则返回零。它更简单,工作量更少。