为什么我的NSArray intValue没有按预期工作?

时间:2011-06-16 03:09:00

标签: iphone ios nsarray

在下面的代码中,当输入错误的用户名密码时,loginString为0;如果输入了正确的用户名密码,则为2061128143657912001。无论我做什么,我总是弹出来。

我错过了什么?

//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];

    }

1 个答案:

答案 0 :(得分:2)

尝试投掷

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

if语句之前,看看事情是否真的像你认为的那样。

完成后,看看如果通过

反转if语句会发生什么
if ([loginString intValue] == 0) {
...
} else {
...
}

或者甚至可以检查[loginString isEqualToString:@"0"]