IOS基础----ios运行过程

1.每一个应用程序都有属于自己的UIWindow,UIWindow继承自UIView

2.UIView面临的问题:

1.谁来控制UIView之间的切换?

2.谁来管理UIView的生命周期?

3.谁来给UIVIew装配数据?

4.谁来监听UIView的事件?

上面三个问题的答案都是:UIViewController

IOS核心类

  • UIView:视图,屏幕上能看得见摸得着的东西都是UIView,比如按钮、文本标签、表格
  • UIViewController:内部默认都有个UIView视图,负责管理UIView的生命周期、装配数据到UIView上显示、处理UIView时间
  • IOS的设计采取了MVC模式(模式、视图、控制器)

IOS程序的运行原理:

1.首先执行main函数

2.执行UIApplicationMain函数

3.UIApplicationMain函数内部

1.创建一个UIApplication实例。这个UIApplication对象是单例的,一个ios程序对应一个UIApplication

实例

2.UIApplication对象是应用程序的象征

3.开启一个消息循环(main loop)

4.再创建一个UIApplication的delegate对象,负责监听UIApplication的生命周期

5 .当UIApplication的生命周期发生变化的时候,会给delegate发送不同的消息

4.UIApplication函数的参数:

第4个参数用来指定UIApplication的代理

第3个参数用来指定UIApplication的类名(或者子类),如果为nil,默认就是UIApplication

每一个新界面都是一个新的UIView,在切换过程中,涉及到了:

  • UIView的创建和销毁
  • UIView跟用户的交互(处理UIView内部每一行的点击)

UIViewController

  • 其实,每当显示一个新界面时,首先会创建一个新的UIViewController对象,然后创建一个对应的全屏UIView,UIViewController负责管理这个UIView
  • UIViewController就是UIView的大管家,负责创建、显示、销毁UIView,负责监听UIView内部的时间,负责处理UIView与用户的交互
  • UIViewController内部有个UIView属性,就是它负责管理的UIView对象:@property(nonatomic,retain) UIView *view;

所以当我们要监听按钮,进度条、slider、等的事件时,我们都要交给控制器UIViewControllre去监听

时间: 2024-10-12 23:43:48

IOS基础----ios运行过程的相关文章

IOS学习之路- 运行过程

1. 执行Main函数(在main.m文件中) 2. 加载MainStoryborad.storyboard文件 * 创建ViewController文件 * 根据storyboard文件中描述创建ViewController中的UIView(父层) * 创建UIView内部的所有子控件 * 将创建好的所有UIView对象跟ViewController做相应的关联(IBAction,IBoutlet  ) 3. 将程序的第一个控制器内部的UIview显示到手机屏幕上. IOS学习之路- 运行过程

OC学习小结之ios运行过程详解

1)ios核心类 UIView 视图,屏幕上能看得见的东西都是视图,例如:按钮.文本标签.和表格等 UIViewController:内部默认有个视图(UIView),负责管理UIView的生命周期.装配数据到UIView上显示.处理其事件 ios采用MVC模式:model -view -controller 2)运行过程 ios运行原理 1.先执行main函数 2.main函数调用UIApplicationMain函数 创建一个UIApplication实例,这个是一个单例对象,一个ios程序

【学习总结】IOS程序运行过程 、UIWindow 、controller 、 UIView 创建过程的总结

程序启动开始到view显示: 程序启动首先会执行main函数 - > UIApplicationMain函数: 程序启动 (加载框架,info文件,资源等) 执行Main函数 初始化UIApplication单例对象 初始化AppDelegate对象,并设为UIApplication对象的代理 然后调用UIApplication的didFinishLaunchingWithOptions方法创建UIWindow对象,设置rootViewController根控制器等 然后建立一个主事件循环,其中

iOS基础问答面试

<简书社区 — Timhbw>iOS基础问答面试题连载(一)-附答案:http://www.jianshu.com/p/1ebf7333808d <简书社区 — Timhbw>iOS基础问答面试题连载(二)-附答案:http://www.jianshu.com/p/ce50261f8907 <简书社区 — Timhbw>iOS基础问答面试题连载(三)-附答案:http://www.jianshu.com/p/5fd65c20912e 以下是一些自己收集的比较基础的问题(

iOS基础 01 构建HelloWorld,剖析并真机测试

iOS基础 01 构建HelloWorld,剖析并真机测试 前言: 从控制台输出HelloWorld是我们学习各种语言的第一步,也是我们人生中非常重要的一步. 多年之后,我希望我们仍能怀有学习上进的心情,继续以HelloWorld去认识这世界上更多的东西. 本篇以HelloWorld作为切入点,向大家系统介绍什么事iOS应用以及如何使用Xcode创建iOS应用. 目录: 1. 创建HelloWorld工程 1.1. 设计界面 1.2. 真机测试 2. Xcode中的iOS工程模板 2.1. Ap

iOS 基础 第二天(0805)

0805 面向对象三大特性 封装.继承和多态 oc的方法都是在运行过程中才会检测的.编译时方法没实现只会出现警告,运行时出错.如果方法实现了但没有声明,运行时对象仍然可以调用方法不会出错.这是OC中弱语法的表现 说白了oc中的弱语法就是因为运行时检测合理性和可用性.编译时不会出错顶多是警告,运行时才警告.这个现象不仅仅体验在方法的声明和实现上,比较好的一个例子是MPMoviePlayerController的截屏通知事件,它需要传入float类型的数组,如果你在编译写了整型不会报错也不会警告,但

iOS基础问答面试题连载(三)-附答案

「Tim的博客」iOS基础问答面试题连载(一)-附答案 「Tim的博客」iOS基础问答面试题连载(二)-附答案 「Tim的博客」iOS基础问答面试题连载(三)-附答案 「Tim的博客」iOS基础问答面试题连载(四) 这次的问题是网络多线程相关的哟,面试的时候也是必问的,大家多看看 11月24日修正一处错误:18.19题目一样,答案不一样(其实是两种理解,修改为最优的一种放上来.多谢读者提醒) 以下是一些自己收集的网络多线程方面比较基础的问题(大神可以忽略),附上答案,方便大家阅读.俗话说得好,基

iOS开发系列--IOS程序开发概览ios基础

iOS开发系列--IOS程序开发概览 2014-08-04 19:42 by KenshinCui, 72273 阅读, 81 评论, 收藏,  编辑 概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序.但是这里我想强调一下,前面的知识是你日后开发IOS的基础,没有那些知识你开发IOS会很痛苦,现在很多开发人员做开发都是一知半解,程序质量确实令人担忧,所以还是希望大家能够熟练掌

iOS基础笔试题-(2)

12. obj在编译时和运行时分别时什么类型的对象 如下面的代码,obj在编译时和运行时分别时什么类型的对象: 1 2 3 NSString *obj = [[NSData alloc] init]; 参考答案: 在编译时,我们所声明的obj是NSString *类型,因此是NSString类型对象.在运行时,由于指针obj所指向的是NSData类型对象的内存,因此实际上是NSData类型的对象.在编译时,这一行代码会转换成类似这样: 1 2 3 4 NSString *obj = ((id (