2010-03-20 61 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