0

and & or ステートメントをまとめる適切な構文は何ですか?

ユーザーが入力しているデータを検証するコードを実装しようとしています。セグメント化されたコントロール、テキスト ビュー、次のページ ボタンがあります。次のView Controllerに進むには、ユーザーはセグメント化されたコントロールで「はい」または「いいえ」を選択する必要があり、「はい」を選択した場合、テキスト ビューにテキストを入力する必要があります。

- (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 のケースの一部を取り除くために、コードのもつれを解消/もつれを解消してみませんか。1 つの 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 に答える