0

将 and & or 语句放在一起的正确语法是什么?

我正在尝试实现一些代码来验证用户输入的数据。我有一个分段控件、一个文本视图和一个下一页按钮。要前进到下一个视图控制器,用户必须在分段控件上选择“是”或“否”,如果选择“是”,他们必须在文本视图中输入一些文本。

- (IBAction)nextPageButton:(UIBarButtonItem *)sender {

if (weatherDelayString == nil || ([weatherDelayString isEqual: @"YES"] && weatherDelayTextView.text == nil)) {
    NSLog(@"nothing selected");
}else{
    vc7Signature *vc7 = [[vc7Signature alloc]initWithNibName:nil bundle:nil];
[self presentViewController:vc7 animated:YES completion:nil];
}}

有人可以澄清实现此逻辑所需的语法吗?

4

3 回答 3

1

在每个决定周围加上括号,以便绝对清楚。所以,你目前有

A || B && C

而你应该输入

(A || B) && C

或者

A || (B && C)

我将由您决定哪个最适合您的应用程序

于 2013-05-14T04:38:28.763 回答
1

为什么不解开/解开你的代码以摆脱一些 AND & OR 情况。我可以用一个 AND 做到这一点:

- (IBAction)nextPageButton:(UIBarButtonItem *)sender {

    if ([weatherDelayString isEqual: @"YES"] && ([weatherDelayTextView.text length] > 0))
    {
        vc7Signature *vc7 = [[vc7Signature alloc]initWithNibName:nil bundle:nil];
        [self presentViewController:vc7 animated:YES completion:nil];
    } else {
        NSLog(@"the YES / NEXT condition I want the users to have to go forward isn't selected");
    }
}

希望这比 OR 加上嵌套的 AND 条件更容易阅读。

于 2013-05-14T04:39:28.700 回答
0

Use this one,,,

- (IBAction)nextPageButton:(UIBarButtonItem *)sender 
{
        if ((weatherDelayString == nil || [weatherDelayString isEqual: @"YES"]) && weatherDelayTextView.text == nil)
        {
            NSLog(@"nothing selected");
        }
        else
        {
            vc7Signature *vc7 = [[vc7Signature alloc]initWithNibName:nil bundle:nil];
            [self presentViewController:vc7 animated:YES completion:nil];
        }
}
于 2013-05-14T04:42:13.350 回答