首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cocoa: int main函数

Cocoa: int main函数
EN

Stack Overflow用户
提问于 2010-01-22 00:59:25
回答 5查看 7.8K关注 0票数 7

我很好奇,int main函数在Cocoa程序中扮演什么角色?实际上,我看过的所有示例代码在main.m中都只有以下代码:

代码语言:javascript
复制
#import <Cocoa/Cocoa.h>


int main(int argc, char *argv[])
{

    return NSApplicationMain(argc,  (const char **) argv);
}

这到底在做什么,程序实际上是从哪里开始单步执行命令的?似乎我的观念需要重新调整。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-01-22 01:07:22

由于Cocoa项目与其他项目一样启动,因此操作系统的入口点是main。但是,Cocoa Architecture实际上是从NSApplicationMain开始处理程序的,它负责从应用程序加载初始窗口,并启动用于处理图形用户界面事件的事件循环。

苹果在Cocoa Fundamentals Guide : The Core Application Architecture on Mac OS X下对此进行了非常深入的讨论

票数 12
EN

Stack Overflow用户

发布于 2010-01-22 01:39:48

如果您想了解控制如何从"launch this“传递到main()函数,execve手册页提供了详细信息。您可能还想阅读有关dyld的内容。main()是Unix标准的一部分。你可以有效运行的每一个程序都有一个main()

正如其他人所提到的,NSApplicationMain将控制权交给了可可。documentation对于它的作用是非常具体的。

有趣的是,NSApplicationMain实际上并不是每次都返回。也就是说,如果您将对NSApplicationMain的调用与main函数中的返回分开,并将代码放在两者之间,那么这些代码将永远不会被执行。

票数 5
EN

Stack Overflow用户

发布于 2010-01-22 01:04:41

main()是程序的入口点。

当你运行你的程序时,这是第一个被调用的函数。当您退出该函数时,您的程序将结束。

还要注意,这不是来自Objective-C。这是简单的C语言。

看一看Wikipedia's page on it

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2111128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档