美文网首页
ios中的main.m文件

ios中的main.m文件

作者: gbook | 来源:发表于2019-01-21 21:34 被阅读0次

摘要:在ios开发中有一个文件main.m文件,本文我们主要分析这个主函数里面到底做了哪些工作和任务。(转自:云图库).

一、main.m的代码如下:

#import <UIKit/UIKit.h>

#import "AppDelegate.h"

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

    @autoreleasepool {

        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

    }

}

二、函数分析

在main.m文件中只有一个main()方法,且主要导入两个头文件包:UIKit.h和AppDelegate.h

UIApplication对象是应用程序的象征,每一个应用都有自己的UIApplication单例对象。通过[UIApplication sharedApplication]可以获得这个单例对象,一个iOS程序启动后创建的第一个对象就是UIApplication对象,利用UIApplication对象,能进行一些应用级别的操作。

其中在main方法中UIApplicationMain创建一个UIApplication对象。每个ios应用程序都会有且只有一个UIApplication对象,此对象也是单例,负责单例对象的维护和循环运行事件。

程序中一旦创建了某个UIApplication单例对象,对象就会一直循环下去。

通过查看上述int main()函数,发现UIApplicationMain还会创建某个指定类(也是AppDelegate)对象,并设置delegate;

并且UIApplicationMain的第三个参数是NSString类型,代表是该对象所属的类。

三、启动步骤如下:

1.main启动函数。

2、创建UIApplication对象。

3、创建UIApplication的delegate对象。

4、delegate对象开始处理(监听)系统事件(没有storyboard)。

5、程序启动完毕的时候,就会调用代理的application:didFinishLaunchingWithOptions:方法。

6、在application:didFinishLaunchingWithOptions:中创建UIWindow。

7、创建和设置UIWindow的rootViewController。

8、开始显示窗口,呈现给用户界面。

相关文章

  • ios中的main.m文件

    摘要:在ios开发中有一个文件main.m文件,本文我们主要分析这个主函数里面到底做了哪些工作和任务。(转自:云图...

  • iOS-应用生命周期

    iOS的入口在main.m文件: int main(int argc, char *argv[]){@autore...

  • iOS程序的执行顺序

    iOS程序的执行顺序 首先从main.m文件的main函数开始执行的。

  • OC对象底层实现

    将main.m 文件转成main.cpp 文件main.m中,创建了一个NSObject对象 main.cpp 展...

  • 从OC到Swift (一)

    oc的入口:main.m文件中 swift的入口:AppDelegate.swift文件中顶部@main标记,表示...

  • isa底层结构分析

    一、对象的本质 main.m文件 首先,我们使用终端先跳转到把main.m的根目录,把main.m文件使用clan...

  • 运行时相关

    在CYPerson.h文件中 在CYPerson.m中 在main.m文件中 * * * * * * 运行时还可以...

  • ios 类的结构分析

    1.类的结构定义 我们在main.m文件中写一段简单的代码: 然后,我们打开终端cd到当前main.m的上层文件夹...

  • 解读iOS项目 main.m文件

    先上代码 在main.m文件中只有一个main()方法,且主要导入两个头文件包:UIKit.h和AppDelega...

  • iOS main函数知多少

    iOS main函数 一个 iOS App 的 main 函数位于 main.m 中,这是我们熟知的程序入口。但对...

网友评论

      本文标题:ios中的main.m文件

      本文链接:https://www.haomeiwen.com/subject/ixrhjqtx.html