1

我一直在试图弄清楚为什么这段代码没有被命中。日志显示“Success 1”或“Success 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

4 回答 4

5

您对字符串相等性的检查将不起作用,因为它正在检查身份(如果对象是同一个对象)

if (success  == @"1")

相反,您想要检查相等性,如果值相同,则在字符串的情况下为真。你应该改用这个:

if ([success isEqualToString:@"1"])
于 2012-08-07T15:47:07.560 回答
3

NSString 文字相等应使用 [NSString isEqualToString:] 完成,否则您将检查指向对象的指针是否相同。

于 2012-08-07T16:46:08.123 回答
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];
    }
于 2012-08-07T18:08:49.757 回答
1

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

于 2012-08-07T18:06:51.070 回答