2010-03-20 48 views
2

這是用於iPhone的Xcode中的Objective-C。如何在main.m中調用靜態布爾方法

我在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// 
} 

如何調用從main.m文件的do_it_all方法?

回答

5

只要您在調用函數之前已經聲明瞭函數,就可以正常調用它。無論是移動的函數定義上述main()或添加以下線以上:

static BOOL do_it_all(); 

就個人而言,我認爲前者比較容易,但如果你有功能之間循環依賴,就不可能沒有函數原型來解決。

當你在C/Objective-C/etc中添加函數原型時。他們經常在頭文件(.h)文件中,但如果一切都在main.m中,這可能是矯枉過正。

+0

我確實有循環依賴。這些信息非常有幫助。謝謝。 在main.m中的工作似乎有點不同於標準的.h/.m文件。 – AaronG 2010-03-20 12:40:53

2

像這樣:

do_it_all(); 

這只是一個普通的C函數調用。但您需要在main之前移動do_it_all的聲明,或者轉發聲明;否則,main將不知道你在說什麼。

+0

我該如何轉發聲明。我以爲你只能前進宣佈一個班。 – AaronG 2010-03-20 06:03:15

+2

Objective-C類的前向聲明(帶'@ class')是不同的。在這種情況下,我們正在討論一個函數原型。 – 2010-03-20 06:08:12