')'令牌之前的预期表达式

时间:2010-09-23 02:31:33

标签: 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 *); 
}

我的目标应该从这段代码中显而易见。我正在做一些非常错误的事情来获取错误消息Expected expression before ')' token

我很感激任何帮助!

3 个答案:

答案 0 :(得分:3)

这看起来更像您要做的事情,即将文本分配给标签,然后切换其是ON还是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]; 
        }

答案 1 :(得分:2)

这里有几个问题。首先,你不需要那个分号。其次,您不需要传递ONOFF的指针:

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

答案 2 :(得分:-1)

应该是:

 - (void)updateLabels:(NSString *)text status:(BOOL) isOn {
    ...

您需要在方法声明后删除分号。第二个和后续参数需要字段名称(状态)和变量以将值放入(isOn)。

在接口声明中,您可以使用开头括号交换分号,如下所示:

 - (void)updateLabels:(NSString *)text status:(BOOL) isOn;

然后调用它看起来像这样:

[... updateLabels:@"My label text" status:YES];