0

当我尝试向我的单词生成器添加“if”语句时,我收到一条错误消息,指出“Expected Expression”。如果我取出 if 语句,它可以正常工作,但我想要做的是有几个单词生成器,并根据我的变量“变量”的值确定访问哪个单词生成器。

示例:如果“变量”等于 1,则访问第一个字生成器。如果 "variable 等于 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 回答