0

単語ジェネレーターに「if」ステートメントを追加しようとすると、「Expected Expression」というエラーが表示されます。if ステートメントを取り出すと問題なく動作しますが、いくつかの単語ジェネレーターを用意し、変数「変数」の値に応じて、どの単語ジェネレーターにアクセスするかを決定します。

例: 「変数」が 1 の場合、最初のワード ジェネレータがアクセスされます。「変数が 2 に等しい場合、2 番目のワード ジェネレータがアクセスされます。

以下は私の実装ファイルのコードです。

#import "ViewController2.h"
#import "ViewController.h"
#import "ViewController3.h"


@interface ViewController2 ()
@end

@implementation ViewController2
-(IBAction)random {
    if (int variable = 3) {
        int text = rand() %3;
        switch (text) {
            case 0:
                introLabel.text = @"Test 1";
                break;
            case 1:
                introLabel.text = @"Test 2";
                break;
            case 2:
                introLabel.text = @"Test 3";
                break;

            default:
                break;
        }
    }
}
-(IBAction)backButton:(id)sender {
    ViewController *viewController2 = [[ViewController alloc] initWithNibName:nil     bundle:nil];
    [self presentModalViewController:viewController2 animated:YES];
}

-(IBAction)moreButton:(id)sender {
    ViewController3 *viewController2 = [[ViewController3 alloc] initWithNibName:nil     bundle:nil];
    [self presentModalViewController:viewController2 animated:YES];
}

助けてくれてありがとう。

4

1 に答える 1

2

あなたの質問は不明確ですが、次の行について話していると思います:

if (int variable = 3) {

これは無効な Objective-C 構文です。おそらくあなたが望む:

if (variable == 3) {

これは、という名前のインスタンス変数があることを前提としていますvariable(これはひどい名前です)。

したがって、randomメソッドは次のようになります。

-(IBAction)random {
    if (variable == 1) {
        int text = rand() %3;
        switch (text) {
            case 0:
                introLabel.text = @"Test 1";
                break;
            case 1:
                introLabel.text = @"Test 2";
                break;
            case 2:
                introLabel.text = @"Test 3";
                break;

            default:
                break;
        }
    } else if (variable == 2) {
        // process the 2nd word generator here
    } else if (variable == 3) {
        // process the 3rd word generator here
    }
}

ここでも、という名前のインスタンス変数を追加する必要があり、variableその値を適切な場所に設定します。または、変数で行うようにvariable、値が割り当てられた別のローカル変数にすることもできます。rand()text

于 2013-06-17T23:15:46.287 に答える