2011-06-16 94 views
0

在下面的一段代码中,当输入不正确的用户名密码时,loginString为0,输入正确的用户名密码时为2061128143657912001。然而,不管我做什么,我总是得到弹出。为什么我的NSArray intValue无法按预期工作?

我错过了什么?在

NSLog(@"loginString = %@",loginString); 
NSLog(@"loginString = %d",[loginString intValue]); 

//loginString is a 0 or a 2061128143657912001 
if ([loginString intValue]>0) { 

     NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
     [defaults setObject:userName.text forKey:@"userNameKey"]; 
     [defaults setObject:password.text forKey:@"passwordKey"]; 
     [defaults synchronize]; 
     [self dismissModalViewControllerAnimated:YES]; 

    }else { 

     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Login Validation Error" message:@"Unable to validate Login/Password combination" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
     [alert show]; 
     [alert release]; 

    } 
+0

什么是'loginString',它在哪里声明和设置? – PengOne 2011-06-16 03:11:59

+0

NSMutableString * loginString;在头文件中的同一个类中声明。它在XML解析器函数中设置。我在上面的代码上面完成了一个NSLog,并且我得到了一个0或2061128143657912001 – jini 2011-06-16 03:14:16

+2

这是不可能的。一个'int'至多是2147483647. – 2011-06-16 03:17:36

回答

2

尝试投掷if语句之前,看看事情是真的你认为他们是。

做完这些,看看会发生什么,如果你通过

if ([loginString intValue] == 0) { 
... 
} else { 
... 
} 

扭转if陈述或者甚至检查[loginString isEqualToString:@"0"]

+0

非常好的遵守我现在就试试。感谢您说明我应该做的事情:S – jini 2011-06-16 03:17:04

+0

是的,我确实已经发布了并且没有登录字符串。感谢您让我走上正轨。 – jini 2011-06-16 03:19:13

+0

糟糕。很高兴你修好了它。 – PengOne 2011-06-16 03:19:54

相关问题