2013-07-22 3 views
2

Я пытаюсь объявить функцию в рамках другой функции. Так вот часть моего кода: ViewController.mНеявное объявление функции «...» недействительно на C99?

- (void)updatedisplay{ 
    [_displayText setText:[NSString stringWithFormat:@"%d", counter]]; 

} 

- (IBAction)minus1:(id)sender { 
    counter--; 
    updatedisplay(); 
} 

ViewController.h

- (IBAction)minus1:(id)sender; 
- (void)updatedisplay; 

Который вернулся мне ошибку «неявное объявление функции» ...»недействителен в C99" .

Результат: http://i.imgur.com/rsIt6r2.png

Я обнаружил, что люди столкнулись с подобной проблемой, но как новичок я не знаю, что делать дальше. Спасибо за вашу помощь! :)

Implicit declaration of function '...' is invalid on C99

+1

сначала узнать некоторые основные вещи, связанные с объективным Престолом после этого вы можете реализовать programs..http: //cocoadevcentral.com/d/learn_objectivec/ – Balu

ответ

10

Вы не объявляя function; но instance method, поэтому для его вызова вы должны отправить его как сообщение self;

[self updatedisplay];

EDIT

Как @rmaddy указал (спасибо за это) он объявлен как метод экземпляра не метод класса. Чтобы все было ясно;

- (return_type)instance_method_name.... вызывается через «self» или указатель на экземпляр объекта.
+ (return_type)class_method_name.... вызывается непосредственно над классом (статическим).

+1

'updatedisplay' объявлен метод экземпляра, а не метод класса. – rmaddy

+0

@rmaddy - спасибо за исправление! – ludesign

+0

Должен ли я использовать «я», даже если функция имеет параметры? например gettimeofday (& endTime, NULL); – acecapades

4

Проблема

updatedisplay(); 

решение

[self updatedisplay]; 

причина

- (void)updatedisplay; 

является методом класса доступен для этого class.So вы должны вызвать из класса иметь доступный метод для тебя.

3

Это потому, что вы определили свою функцию как метод экземпляра, а не функция.

Поэтому использовать его как

- (IBAction)minus1:(id)sender { 
    counter--; 
    [self updatedisplay]; // Change this line 
} 
Смежные вопросы