Ожидаемое выражение перед символом ')' - PullRequest
0 голосов
/ 23 сентября 2010

У меня проблемы с программой, которую я пытаюсь создать в 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 ]

3 голосов
/ 23 сентября 2010

Это больше похоже на то, что вы пытаетесь сделать, то есть назначить текст метке и затем включить или выключить ее

#define ON YES
#define OFF NO
    - (void)updateLabels:(NSString *)text isOn:(BOOL)
        {
        [self setNameLabel:text]; 
        if (isOn)
         [self setOnLabel:ON];
        else
          [self setOnLabel:OFF]; 
        }
2 голосов
/ 23 сентября 2010

Пара проблем здесь. Во-первых, вам не нужна эта точка с запятой. Во-вторых, вам не нужно передавать указатели для ON и OFF:

- (void)updateLabelsWithText:(NSString *)text AndOnState:(BOOL)isOn {
    [self setNameLabel: text]; 
    if(isOn)
        [self setOnLabel:@"ON"];
    else
        [self setOnLabel:@"OFF"];
}
0 голосов
/ 23 сентября 2010

Это должно быть:

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

Вам необходимо удалить точку с запятой после объявления метода.Второму и последующим параметрам нужны как имя поля (status), так и переменная, чтобы поместить значение в (isOn).

В объявлении интерфейса вы меняете открывающую скобку на точку с запятой, например, так:*

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

Тогда вызов будет выглядеть так:

[... updateLabels:@"My label text" status:YES];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...