“或”&的语法“和”陈述

时间:2013-05-14 04:34:23

标签: ios syntax nsstring nested statements

放在一起的正确语法是什么?&还是陈述?

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

- (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];
}}

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

3 个答案:

答案 0 :(得分:1)

在每个决定周围加上括号,以便它绝对清晰。所以,你现在有

A || B && C

而你应该放入

(A || B) && C

A || (B && C)

我会由您决定哪种方法最适合您的应用

答案 1 :(得分:1)

为什么不对你的代码进行去整理/解码以摆脱一些AND& amp;或案件。我可以用一个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条件更容易阅读。

答案 2 :(得分:0)

使用这个,,,

- (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];
        }
}