已经学习iOS有一定的时间了,现在打算整理一下自己的知识,也和大家分享一下我所学的成果,也希望大家多多指正。
今天我们来讲讲我们的第一个程序。
(1)我们按照iOS -> Application -> Single View Application来创建我们的第一个iOS程序
(2)接下来,我们看到我们工程里的Supporting Files中的main.m文件,大家都知道,main是我们程序的唯一主入口,在iOS中也不例外。我们再看到main函数里的代码:
代码:
#import <UIKit/UIKit.h> #import "AppDelegate.h" int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } }
其实这一段代码主要做了三件事,那三件事呢?我们慢慢来解析一下。
首先,UIApplicationMain(参数1,参数2,参数3,参数4),这是UIKit框架为我们提供的一个方法,内部怎么实现,我们不清楚,但是,我们可以知道它为我们做了三个事情。
(1)创建应用程序对象application
(2)创建程序代理对象appDelegate,并将其设置为application的代理对象
(3)进入事件循环
因为第二点,所以我们经常会在appDelegate文件中写我们需要写的代码,又或者在appDelegate中编写代码,跳转到我们的ViewController中。
有些同学可能直接在工程自带的Main.storyboard里拉控件,然后在ViewController里写代码,好像根本用不到appDelegate,点进appDelegate中,,我们会发现,里面就几个方法,什么都没写,这是为什么呢?
这就要看到我们的一个配置文件(info.plist)了:
在上图的地方,写了要链接的storyboard文件,也就是Main.storyboard,所以就算不在appDelegate中写跳转的代码,程序也能通过配置文件,跳转到Main.storyboard里,而Main.storyboard又是与类ViewController关联,所以,我们才能直接在ViewController和Main.storyboard中写代码。
之后,有同学又会问了,“进入事件循环”,事件循环是什么?
这里要解释一下:
在以前我们写c语言程序,Objective-c语言程序,一旦运行完所有代码,程序就会马上结束。而在iOS中,你会发现并不会。
就算程序运行起来了,程序的停止按钮一样处于可点的状态,说明程序并没有结束。其实,事件循环,说白了,就是一个死循环。
程序运行之后,里面会有一个对象对要执行的操作进行监听,如果有需要执行的操作,则去执行;如果没有要执行的任务,它就一直卡着,并且进入休眠状态;如果又监听到了任务,那么就会被唤醒,再去执行任务。
好了,第一个程序就暂时讲到这里,以后再继续更新!
原文:http://www.cnblogs.com/superlsp/p/5032190.html