2

我是 Objective-C 的新手。我们知道所有 Objective-C 程序都以方法开头main。然后它应该会在一段时间后结束,但是即使 iOS 应用程序到达该方法的末尾,它们也会继续运行。你能解释一下吗?

4

2 回答 2

4

那是因为运行此行时会创建一个运行循环:

    int retVal = UIApplicationMain(argc, argv, nil, nil);

运行循环处理传入事件(按钮按下、鼠标移动、计时器、网络活动等。此循环永远不会终止。应用程序终止的方式是由操作系统或exit()从调用它的任何位置终止应用程序的函数。您不应该exit()在 iOS 中调用该函数,因为操作系统应该始终在后台处理应用程序终止。

于 2013-08-20T02:18:29.837 回答
0

调用 UIApplicationMain 的行设置了一个循环,该循环继续为您的整个应用程序运行。所以基本上,它在应用程序运行的整个过程中都处于主循环的中间。它退出的唯一时间是系统告诉它退出或应用程序崩溃时。如果您想响应应用程序退出等更改,您应该实现 Application Delegate 方法。重申一下,在为 iOS 编程时,您必须修改 main.m 文件是非常罕见的。

于 2013-08-20T02:18:23.477 回答