在下面的代码中,当输入错误的用户名密码时,loginString为0;而当输入正确的用户名密码时,loginString为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];

    }

最佳答案

尝试扔

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


if语句之前查看事物是否真的如您所想。

完成后,看看如果通过以下方式反转if语句会发生什么

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


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

07-27 16:46