Objective c 目标c-具有两个if语句的for循环

Objective c 目标c-具有两个if语句的for循环,objective-c,if-statement,for-loop,uiviewcontroller,Objective C,If Statement,For Loop,Uiviewcontroller,我正在构建一个应用程序,我几乎完成了 问题是:我有一个带有两个if语句的for循环,它工作不正常,我就是看不出哪里出了问题 代码如下: for (Tickets *items in _feedItems){ if ([resultText.text isEqual:(id) items.ticketNumber]) { if ([items.ticketDate isEqualToString: @"0"]) { status.text = @“

我正在构建一个应用程序,我几乎完成了

问题是:我有一个带有两个if语句的for循环,它工作不正常,我就是看不出哪里出了问题

代码如下:

for (Tickets *items in _feedItems){
    if ([resultText.text isEqual:(id) items.ticketNumber]) {
        if ([items.ticketDate isEqualToString: @"0"]) {

            status.text = @“YES”;


            NSString *date = resultText.text;
            NSMutableString *postString = [NSMutableString     
                                              stringWithString:kPostURL];
            [postString appendString:[NSString stringWithFormat:@"?%@=%@", kDate, 
                                               date]];
            [postString setString:[postString 
                                      stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
            NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:
                                                                            [NSURL URLWithString:postString]];
            [request setHTTPMethod:@"POST"];
            postConnection = [[NSURLConnection alloc] initWithRequest:request 
                                                      delegate:self startImmediately:YES];


            UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" 
                                                     bundle:nil];
            UIViewController *View = [storyboard 
                                         instantiateViewControllerWithIdentifier:@"Approved"];

            [self presentViewController:View animated:NO completion:NULL];

        }
        break;

    }
    else {
        status.text = @“NO”;

        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" 
                                                 bundle:nil];
        UIViewController *View = [storyboard 
                                     instantiateViewControllerWithIdentifier:@"NotApproved"];

        [self presentViewController:View animated:NO completion:NULL];
    }
 }
此代码总是将我抛出到未经批准的ViewController,而从不抛出到已批准的ViewController;即使它已被批准并已执行到数据库的POST


任何帮助都将不胜感激

如果([resultText.text isEqual:(id)items.ticketNumber])
出现问题,您正在将字符串与id进行比较。id可以是任何字符串、数组、字典等。请先转换为文本,然后进行比较,否则每次都会抛出错误

他说
POST
正在执行。这意味着
if
将进入第一个块。我应该写:if([resultText.text isEqual:items.ticketNumber])?items.ticketNumber是字符串还是整数?在我看来,integeritems.ticketNumber是一个字符串(包含数字)。如果我删除未经批准的ViewController,则已批准的ViewController将显示相关问题:如果多个票证未经批准,您是否希望多个未经批准的视图控制器按顺序显示?或者,您是否只对获取resultText.text指定的单个票证的状态感兴趣?如果您打算使用后者,那么可能应该将
else
部分附加到内部
If
。我试过了,它对数据库中的票证有效,但如果它是未注册的票证,则不会发生任何事情。我删除了break,并将其替换为else语句(并删除了外部的else语句)。情况是:我第一次获得批准的ViewController,第二次未获得批准,因为它在数据库中被“标记为已使用”。太好了!但是,如果我使用数据库中没有的票证,那么什么也不会发生……按钮被按下……并且它不会改变ViewController。在你的问题中,我认为如果你添加一个关于你想要实现什么的解释会更好,因为从代码中看不明显(例如:您是否只对一张特定的票证感兴趣,是什么定义了一张票证是否被批准/未被批准,如果被批准该怎么办,如果未被批准该怎么办,等等)。更重要的是:通过添加NSLog语句来执行一些调试,以显示代码实际正在执行的操作或它正在查看的数据。您是否在调试器中仔细查看了代码并查看了实际的执行流并确认它执行了预期的操作?如果它没有执行预期的操作,请记录变量值,包括问题中的调试。