iOS main函数讲解

int main(int argc, char * argv[]) {
    @autoreleasepool {
        //四个参数 主要讲解后面两个参数
        /*
         第三个参数:UIApplication或者其子类的类名,如果传 nil 默认是 UIApplication
         第四个参数:UIApplication 的代理的类的名称
         NSStringFromClass:把类名转化为字符串

         */

        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
        //UIApplicationMain 的原理

        /*
         1.根据第三个参数传入的类名 创建UIApplication对象
         2.根据第四个参数创建UIApplication的代理对象,并给UIApplication设置代理
         3.开启一个主运行事件循环(RunLoop)处理事件,保持程序在没退出时一直运行
         4.加载info.plist文件,查看是否配置了main 的nib文件,如果指定了就去加载
         */

    }
}
时间: 2024-10-06 11:29:05

iOS main函数讲解的相关文章

iOS 从main函数开始

app程序的入口,同样是main函数 main函数为 int main(int argc, char * argv[]),C系语言大多都是这个样子,argc是命令行总的参数个数,argv是参数的数组,值得一提的是argv中第一个参数为app的路径+全名. 然后就是main中的代码 @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } autor

【iOS】被忽略的main函数

如同任何基于C的应用程序,程序启动的主入口点为iOS应用程序的main函数.在iOS应用程序,main函数的作用是很少的.它的主要工作是控制UIKit framework.因此,你在Xcode中创建任何新的项目都配备了一个默认的主函数.除了少数特例外,你永远不应该改变这个函数的实现. 1 #import <UIKit/UIKit.h> 2 3 #import "AppDelegate.h" 4 5 int main(int argc, char * argv[]) 6 {

iOS 温故知新之 Main函数和UIApplication

如同C/C++程序都有一个入口函数Main函数一样,iOS app开发也有相同的入口main函数. 然而今天发现在修改老版本的程序发现,跟新版xcode创建出来的main函数有一点不同 这是现在使用Xcode6.3创建的main函数代码: int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate cl

iOS程序main函数之前发生了什么

我是前言 一个iOS app的main()函数位于main.m中,这是我们熟知的程序入口.但对objc了解更多之后发现,程序在进入我们的main函数前已经执行了很多代码,比如熟知的+ load方法等.本文将跟随程序执行顺序,刨根问底,从dyld到runtime,看看main函数之前都发生了什么. 从dyld开始 动态链接库 iOS中用到的所有系统framework都是动态链接的,类比成插头和插排,静态链接的代码在编译后的静态链接过程就将插头和插排一个个插好,运行时直接执行二进制文件:而动态链接需

iOS指向函数的指针和block

  一:block基础知识 block基础知识 基本概念:block是用来保存一段代码的:^:是block得标志  好比*:是指针的标志 特点:1:保存一段代码: 2:可以有参数和返回值: 3:可以作为函数的参数传递: 与代码块的区别,代码块里的代码会自动执行,block中代码要手动调用: 二:普通数据类型.指向函数的指针.block的定义的类比 1:基本数据类型: 例如:int a = 10; 格式:数据类型  变量名 = 值: 2:指向函数的指针:可以仿照上边基本数据类型的定义 例如:voi

C语言中的main函数以及main函数是如何被调用的

main函数是C语言中比较特殊的函数,C程序总是从main函数开始执行,main函数的原型是: 1 int main(int argc, char *argv[]); 其中argc是命令行参数的个数,argv是指向参数的各个指针所构成的数组. 当内核执行C程序时(使用一个exec函数),在调用main前先调用一个特殊的启动例程(什么鬼?).可执行程序文件将此启动例程指定为程序的起始地址--这是由连接编辑器设置的,而连接编辑器则是由C编译器调用.启动例程从内核取得命令行参数和环境变量值,然后为按上

C#解决方案,工程,命名空间,Main函数的含义和性质。

解决方案是唯一的,在一个程序当中有且只有一个. 最上面那个就是解决方案.再解决方案下面就有很多的工程,比如现在默认的那个ConsoleApplication1就是一个工程. 我们可以在解决方案中添加很多的工程. . 图上的控制台程序,窗体程序,类库等等都是工程,可以添加在解决方案中,实际上项目就是工程. 在工程就有很多的源文件(.CS扩展名的) 其余还有很多配置文件(比如App.config). 现在可能会问.既然那么多的工程,那程序启动时是运行哪个呢.其实可以自己设置某个工程为启动项目. 下面

maven项目执行main方法讲解

项目中有时候会遇到执行main函数来测试类中所写的方法.普通的java程序在eclipse中执行非常简单,对要执行的java类,run as 即可编译运行,查看结果. 但是使用maven管理项目,对于maven项目还按照原来的方式就行不通了.下面讲解下如何在maven项目中执行main函数. 一.  maven项目执行main函数方法,需引入两个插件:maven-compiler-plugin和exec-maven-plugin插件. maven-compiler-plugin :用于编译jav

iOS开发 - 啰嗦讲解 Runloop

写在前面的 为什么要了解 RunLoop?如果你想成为一个高级iOS开发工程师,那这是你必须了解的东西,他能帮助你更好的理解底层实现的原理,可以利用它的特性做出一些高效又神奇的功能.RunLoop这个东西已经是在各路大神的Blog里面描述和详解过很多次的了,我把它翻出来再写一遍,一来是为了让自己温故而知新,二来会重点详细解读一下当初我理解时候遇到的难点,为初.中级想要进阶的iOS开发盆友排排坑. 本人写的东西不是很好(从小语文没学好),之前就懂的人看了肯定会觉得我很啰嗦(本人处女座,比较爱会啰嗦