if语句中的代码未被命中

时间:2012-08-07 15:45:06

标签: ios objective-c if-statement

我一直在试图弄清楚为什么这段代码没有被击中。日志说“成功1”或“成功0”所以我想我可以在if语句中使用@“1”或@“0”,但它不会通过任何一节。

     NSString *success = [JSON valueForKey:@"Success"];

    NSLog(@"Success %@", success);

    if (success  == @"1") {
    [self performSegueWithIdentifier:@"loginToInvite" sender:self];
    } else if (success == @"0")
    {
        _logInBtn.selected = NO;
        _popupLbl.hidden = NO;
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Text" message:@"Text" delegate:self cancelButtonTitle:@"Okay" otherButtonTitles:nil, nil];
        [alert show];
    }

感谢您的回答!

4 个答案:

答案 0 :(得分:5)

检查字符串相等性是不行的,因为检查身份(如果对象是同一个对象)

if (success  == @"1")

相反,您希望检查相等性,如果值相同,则在字符串的情况下为true。您应该使用它:

if ([success isEqualToString:@"1"])

答案 1 :(得分:3)

应该使用NSString文字相等     [NSString isEqualToString:] 否则你要检查指向对象的指针是否相同。

答案 2 :(得分:2)

 NSString *success = [JSON valueForKey:@"Success"];

    NSLog(@"Success %@", success);

    if ([success  isEqual:@"1"]) {
    [self performSegueWithIdentifier:@"loginToInvite" sender:self];
    } else if ([success isEqual:@"0"])
    {
        _logInBtn.selected = NO;
        _popupLbl.hidden = NO;
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Text" message:@"Text" delegate:self cancelButtonTitle:@"Okay" otherButtonTitles:nil, nil];
        [alert show];
    }

答案 3 :(得分:1)

为了与字符串值进行比较,请使用isEqualToString:@“1”