Objective c 在';之前应为表达式';代币

Objective c 在';之前应为表达式';代币,objective-c,xcode,Objective C,Xcode,我试图在Objective-C中制作一个程序时遇到问题 我在MainViewController.m中尝试了一种方法,如下所示 - (void)updateLabels:(NSString *)text :(BOOL)isOn; { [self setNameLabel:(text *); if (isOn) [self setOnLabel:(ON *); else [self setOnLabel:(OFF *); } 从这段代码中,我的目标应该是显而易见的。我很可能做了一些非

我试图在Objective-C中制作一个程序时遇到问题

我在MainViewController.m中尝试了一种方法,如下所示

- (void)updateLabels:(NSString *)text :(BOOL)isOn; 
{
[self setNameLabel:(text *); 
if (isOn)
 [self setOnLabel:(ON *);
else
  [self setOnLabel:(OFF *); 
}
从这段代码中,我的目标应该是显而易见的。我很可能做了一些非常错误的事情,以获取错误消息
Expected expression before')标记


我将感谢任何帮助

这看起来更像是您正在尝试的操作,即将文本指定给标签,然后切换其是打开还是关闭

#define ON YES
#define OFF NO
    - (void)updateLabels:(NSString *)text isOn:(BOOL)
        {
        [self setNameLabel:text]; 
        if (isOn)
         [self setOnLabel:ON];
        else
          [self setOnLabel:OFF]; 
        }

这看起来更像是您正在尝试的操作,即将文本指定给标签,然后切换其是打开还是关闭

#define ON YES
#define OFF NO
    - (void)updateLabels:(NSString *)text isOn:(BOOL)
        {
        [self setNameLabel:text]; 
        if (isOn)
         [self setOnLabel:ON];
        else
          [self setOnLabel:OFF]; 
        }
应该是:

 - (void)updateLabels:(NSString *)text status:(BOOL) isOn {
    ...
您需要删除方法声明后的分号。第二个和后续参数需要一个字段名(status)和一个变量来输入值(isOn)

在接口声明中,将左括号替换为分号,如下所示:

 - (void)updateLabels:(NSString *)text status:(BOOL) isOn;
[... updateLabels:@"My label text" status:YES];
然后调用它将如下所示:

 - (void)updateLabels:(NSString *)text status:(BOOL) isOn;
[... updateLabels:@"My label text" status:YES];
应该是:

 - (void)updateLabels:(NSString *)text status:(BOOL) isOn {
    ...
您需要删除方法声明后的分号。第二个和后续参数需要一个字段名(status)和一个变量来输入值(isOn)

在接口声明中,将左括号替换为分号,如下所示:

 - (void)updateLabels:(NSString *)text status:(BOOL) isOn;
[... updateLabels:@"My label text" status:YES];
然后调用它将如下所示:

 - (void)updateLabels:(NSString *)text status:(BOOL) isOn;
[... updateLabels:@"My label text" status:YES];

这里有几个问题。首先,你不需要那个分号。其次,您不需要为
打开
关闭
传递指针:

- (void)updateLabelsWithText:(NSString *)text AndOnState:(BOOL)isOn {
    [self setNameLabel: text]; 
    if(isOn)
        [self setOnLabel:@"ON"];
    else
        [self setOnLabel:@"OFF"];
}

这里有几个问题。首先,你不需要那个分号。其次,您不需要为
打开
关闭
传递指针:

- (void)updateLabelsWithText:(NSString *)text AndOnState:(BOOL)isOn {
    [self setNameLabel: text]; 
    if(isOn)
        [self setOnLabel:@"ON"];
    else
        [self setOnLabel:@"OFF"];
}

仍然在引发错误的方法声明的结尾处有分号。仍然在引发错误的方法声明的结尾处有分号。-1您不需要删除分号(信不信由你),您可以在选择器中有一个空冒号。哦,我不知道。保留分号并在选择器中使用空冒号有什么效果?我假设它们会被归类为一种不太理想的做法,因为我在我看过的任何示例和书籍中都没有看到这种做法:-)克拉克森:没错,你应该在选择器中命名所有参数,你很少会看到不需要的代码。-1你不需要删除分号(信不信由你)在选择器中可以有一个空冒号。哦,我不知道。保留分号并在选择器中使用空冒号有什么效果?我认为它们会被归类为一种不太理想的做法,因为我在我看过的任何示例和书籍中都没有看到这种做法:-)克拉克森:没错,你应该在选择器中列出所有参数,你很少会看到没有的代码。多余的分号实际上是合法的,信不信由你。多余的分号实际上是合法的,信不信由你。