Как я вызываю статический метод bool в main.m - PullRequest
2 голосов
/ 20 марта 2010

Это Objective-C, в Xcode для iPhone.

У меня есть метод в main.m:

int main(int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

//I want to call the method here//

int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}

static BOOL do_it_all () {
//code here//
}

Как мне вызвать метод do_it_all из main.m?

Ответы [ 2 ]

5 голосов
/ 20 марта 2010

Вы можете вызывать его как обычно, если вы уже объявили функцию перед вызовом. Переместите определение функции выше main() или добавьте следующую строку выше:

static BOOL do_it_all ();

Лично я считаю, что первое проще, но если у вас есть циклические зависимости между функциями, решить их невозможно без прототипов функций.

Когда вы добавляете прототипы функций в C / Objective-C / etc. они часто находятся в файле заголовка (.h), но если все в main.m, это, вероятно, излишне.

2 голосов
/ 20 марта 2010

Как это:

do_it_all();

Это просто обычный вызов функции C. Но вам нужно либо переместить объявление do_it_all до main, либо объявить его вперёд; в противном случае main не поймет, о чем вы говорите.

...