包含的文件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
).