我很好奇,int main函数在Cocoa程序中扮演什么角色?实际上,我看过的所有示例代码在main.m中都只有以下代码:
#import <Cocoa/Cocoa.h>
int main(int argc, char *argv[])
{
return NSApplicationMain(argc, (const char **) argv);
}这到底在做什么,程序实际上是从哪里开始单步执行命令的?似乎我的观念需要重新调整。
发布于 2010-01-22 01:07:22
由于Cocoa项目与其他项目一样启动,因此操作系统的入口点是main。但是,Cocoa Architecture实际上是从NSApplicationMain开始处理程序的,它负责从应用程序加载初始窗口,并启动用于处理图形用户界面事件的事件循环。
苹果在Cocoa Fundamentals Guide : The Core Application Architecture on Mac OS X下对此进行了非常深入的讨论
发布于 2010-01-22 01:39:48
如果您想了解控制如何从"launch this“传递到main()函数,execve手册页提供了详细信息。您可能还想阅读有关dyld的内容。main()是Unix标准的一部分。你可以有效运行的每一个程序都有一个main()。
正如其他人所提到的,NSApplicationMain将控制权交给了可可。documentation对于它的作用是非常具体的。
有趣的是,NSApplicationMain实际上并不是每次都返回。也就是说,如果您将对NSApplicationMain的调用与main函数中的返回分开,并将代码放在两者之间,那么这些代码将永远不会被执行。
发布于 2010-01-22 01:04:41
main()是程序的入口点。
当你运行你的程序时,这是第一个被调用的函数。当您退出该函数时,您的程序将结束。
还要注意,这不是来自Objective-C。这是简单的C语言。
看一看Wikipedia's page on it
https://stackoverflow.com/questions/2111128
复制相似问题