如何在Xxode中找出首先运行的文件

nod*_*nja 1 cocoa cocoa-touch objective-c

在具有大量.h和.m文件的Xxode项目中,如何确定首先执行哪个文件?

Dav*_*ong 9

包含的文件int main(int argc, char * argv[]);将首先运行,因为该main()函数是第一个运行的函数.在几乎每个Xcode模板项目中,该文件都被称为"main.m".

编辑

通常,main()Cocoa Touch应用程序的功能如下:

int main(int argc, char *argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil);
    [pool release];
    return retVal;
}
Run Code Online (Sandbox Code Playgroud)

(替换NSApplicationMain()UIApplicationMain()与删除自动释放池,如果你正在写一个Mac应用程序)

编辑#2

我只对从classes文件夹中首先运行的文件感兴趣

简单的答案是"应用程序委托",然后是其他所有内容.

技术上的答案是MainMenu.xib(Mac)或MainWindow.xib(iOS)文件中的任何对象将首先被实例化.通常,该文件中的对象将按照它们出现的顺序进行实例化,但我不认为这是保证的.

因此,如果您在MainWindow.xib文件中有3个自定义顶级对象,那么它们将同时被实例化(在合理范围内).首先他们的initWithCoder:方法将执行,然后一段时间后他们的awakeFromNib方法将执行(这通常是该对象最安全的"起点").

应用程序委托启动方法也会在某处发生(我相信在initWithCoder:和之间awakeFromNib).