关于UIApplicationMain

The main.m File and the UIApplicationMain Function

The main function in main.m calls the UIApplicationMain function within an autorelease pool.

@autoreleasepool {
   return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
The @autoreleasepool statement supports memory management for your app. Automatic Reference Counting (ARC) makes memory management straightforward by getting the compiler to keep track of who owns an object; @autoreleasepool is part of the memory management infrastructure.

The call to UIApplicationMain creates two important initial components of your app:

An instance of the UIApplication class, called the application object.
The application object manages the app event loop and coordinates other high-level app behaviors. The UIApplication class, defined in the UIKit framework, doesn’t require you to write any additional code to get it to do its job.
An instance of the AppDelegate class, called the app delegate.
Xcode created this class for you as part of setting up the Single View Application template. The app delegate creates the window where your app’s content is drawn and provides a place to respond to state transitions within the app. The app delegate is where you write your custom app-level code. Like all classes, the AppDelegate class is defined in two source code files in your app: in the interface file, AppDelegate.h, and in the implementation file, AppDelegate.m.
As your app starts up, the application object calls predefined methods on the app delegate to give your custom code a chance to do its job—that’s when the interesting behavior for an app is executed.

时间: 2024-11-05 21:04:58

关于UIApplicationMain的相关文章

UIApplicationMain、UIApplication详解

一.UIApplicationMain这个函数主要负责三件 事情: 1)从给定的类名初始化应用程序对象,也就是初始化UIApplication或者子类对象的一个实例,如果你在这里给定的是nil,那么 系统会默认UIApplication类,也就主要是这个类来控制以及协调应用程序的运行.在后续的工作中,你可以用静态方法sharedApplication 来获取应用程序的句柄. 2)从给定的应用程序委托类,初始化一个应用程序委托(UIApplicationDelegate).并把该委托设置为应用程序

UIApplicationMain函数做了什么?

在iOS应用中,每个程序得main函数中都调用了UIApplicationMain函数.   int main(int argc, char *argv[]) {     @autoreleasepool {        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));     } } 先来看看UIApplicationMain函数的原型:   int UIApplication

41-50(UIApplication和delegate,UIApplicationMain,UIWindow,程序启动的完整过程,控制器view的延迟加载)

41.UIApplication和delegate 42.UIPickerView 43.UIDatePicker 44.程序启动的完整过程 45.UIApplicationMain 46.UIWindow 47.如何创建一个控制器 48.控制器view的延迟加载 49.多控制器 50.UINavigationController的使用步骤 { 这几天一直在赶项目, 今天终于闲下来了! 今天是个好日子,空间里满天的2014520 那么来看看我们程序员的爱情吧! 爱情就是死循环,一旦执行就陷进去了

UI程序执行顺序(UIApplicationMain()函数),自定义视图

UI程序的一般执行顺序: 先进入main里面,执行函数UIApplicationMain(),通过该函数创建应用程序对象和指定其代理并实现监听,当执行函数UIApplicationMain()时还会做一次跳转,跳转至AppDelegate UIApplicationMain() 函数的三大功能: 1.创建应用的UIApplication对象 2.指定应用程序的代理对象,代理的主要作用:监听应用程序是如何运行的. 3.建立事件循环(runloop:这个循环是一个死循环).作用:一旦用户操作应用程序

[IOS]@UIApplicationMain

当新建一个swift项目后,发现项目结构很简洁,没有.pch文件,也没有.main文件, 自然也不会发现main函数的入口,瞬间对app的启动过程没头绪了,点开 AppDelegate.swift 开头便发现了 @UIApplicationMain  很熟悉的名字,第一想到的就是 在Objc项目中的 int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NS

UIApplication, UIApplicationDelegate,UIApplicationMain的分析

一.UIApplication, UIApplicationDelegate,UIApplicationMain的分析 * UIApplication的核心作用是提供iOS程序运行期间的控制和协调工作. * 每一个应用程序都有自己的UIApplication对象,而且是一个单例对象. * 通过UIApplication对象可以进行一些应用级别的操作. * 演示UIApplication的使用 >获取UIApplication对象UIApplication *app = [UIApplicatio

程序入口-UIApplicationMain

Xcode4.2之前的main函数如下: int main(int argc, char *argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; int retVal = UIApplicationMain(argc, argv, nil, nil); [pool release]; return retVal; } Xcode4.2工程中的主函数为 int main(int argc, char *argv[

Xcode6.2 调试时,Crash到main函数的入口(UIAPPlicationMain)

xcode6.2调试代码时,当程序出现异常crash时,总是调到函数的main入口处,如图 此时最简单的解决办法就是为工程添加一个exception断点即可. 按 commond + 7进到 breakpoint 的Tab 点击 右下角的Add,然后选择  Add Exception BreakPoint

iOS程序执行顺序和UIViewController 的生命周期(整理)

说明:此文是自己的总结笔记,主要参考: iOS程序的启动执行顺序 AppDelegate 及 UIViewController 的生命周期 UIView的生命周期 言叶之庭.jpeg 一. iOS程序的启动执行顺序 程序启动顺序图 iOS启动原理图.png 具体执行流程 程序入口进入main函数,设置AppDelegate称为函数的代理 程序完成加载[AppDelegate application:didFinishLaunchingWithOptions:] 创建window窗口 程序被激活[