iOS面试题第一章

这是我个人总结的一些知识点  如果总结的不全面 或是其中有问题    欢迎大家给我留言  我会改过来的  另外这些也在我的博客里面可以找到

附上我的博客地址:www.cnblogs.com/PengHongMiao/

1、APP的生命周期和viewcontroler的生命周期?

答:APP的生命周期:在APP的代理中分为七个阶段:

1.将要启动

2.已经启动

3.将要进入非活动状态

4.进入后台

5.从后台进入前台

6.进入活动状态

7.内存告警

viewcontroller的生命周期:(也是七个)

loadView->viewDidLoad->viewWillAppear->viewDidAppear->viewWillDisAppear->viewDidDisAppear->delloc

2、多线程:NSThread、NSOperation、GCD

NSOperation 是个抽象类,并不具备封装操作的能力,必须使⽤它的子类:

NSInvocationOperation    (使用代理)

NSBlockOperation        (使用block)

GCD---

Grand Central Dispatch(GCD) 是Apple开发的一个多核编程的较新的解决方法

GCD可用于多核的并行运算

GCD会自动利用更多的CPU内核(比如双核、四核)

GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程

程序员只需要告诉GCD想要执行什么任务,不需要编写任何线程管理代码

学习GCD之前,先来了解GCD中两个核心概念:任务和队列

任务:就是执行操作的意思,换句话说就是你在线程中执行的那段代码。在GCD中是放在block中的。执行任务有两种方式:同步执行异步执行。两者的主要区别是:是否具备开启新线程的能力。

同步执行(sync):只能在当前线程中执行任务,不具备开启新线程的能力

异步执行(async):可以在新的线程中执行任务,具备开启新线程的能力

队列:这里的队列指任务队列,即用来存放任务的队列。队列是一种特殊的线性表,采用FIFO(先进先出)的原则,即新任务总是被插入到队列的末尾,而读取任务的时候总是从队列的头部开始读取。每读取一个任务,则从队列中释放一个任务。在GCD中有两种队列:串行队列并发队列

想要更详细的了解GCD去看:http://www.jianshu.com/p/2d57c72016c6

3、单例、代理、属性、通知、block的传值技术?

属性传值很好理解。A->B  就在B的.h中暴露出一个属性就可以了,在A中直接调用B的实例进行赋值就可以了。   也是最简单的传值方法

代理传值  A->B  在A中声明协议  在B中遵循协议  并实现协议方法就可以了        也比较简单

B->A  即反向传值    在B中声明协议  A中遵循协议----- 在A中push到B时遵循协议,设置代理  并实现代理方法   在B中pop回A时利用自己的代理执行代理方法(即把B中的值赋给代理方法中的参数即可)  是不是很简单

只要记住   代理反向传值   谁传谁声明协议   接收方实现代理方法   push前遵循协议设置代理   pop前执行代理方法(赋值)

block 传值分为正向传值和反向传值

正向传值  A->B  在A中声明一个block    Apush前进行block的实现block    B中要赋值的时候进行调用block      这种block应为带参数和返回值的block

反向传值 B->A 在B中声明一个block  Apush前实现block    Bpop前调用block    这种block应为带参数的block

单例传值也分为正向传值 和反向传值

正向传值就不说了     说白了就是一个中间者  A->B     A->C   C->A

反向传值的话就是    B->A  Bpop时把值赋值给单例    在界面消失时实例化A的对象 把单例的值赋给A      (感觉多此一举  还不如直接属性赋值   但单例在数据共享时还是有用处的)

4、MVC、MVVM、MVP三大设计框架

MVC

iOS面试题第一章_第1张图片

缺陷:

iOS面试题第一章_第2张图片
iOS面试题第一章_第3张图片
iOS面试题第一章_第4张图片

实在是写的太好了  就直接拿过来了

MVVM:

iOS面试题第一章_第5张图片
iOS面试题第一章_第6张图片

MVP:

iOS面试题第一章_第7张图片
iOS面试题第一章_第8张图片
iOS面试题第一章_第9张图片
iOS面试题第一章_第10张图片
iOS面试题第一章_第11张图片

5、单例(singleton)代理(delegate)观察者(observer)动作/目标机制(target/action)等常见设计模式

单例:

iOS面试题第一章_第12张图片
iOS面试题第一章_第13张图片

代理:

iOS面试题第一章_第14张图片
iOS面试题第一章_第15张图片

观察者:

iOS面试题第一章_第16张图片
iOS面试题第一章_第17张图片
iOS面试题第一章_第18张图片
iOS面试题第一章_第19张图片
iOS面试题第一章_第20张图片
iOS面试题第一章_第21张图片

动作/目标机制:

iOS面试题第一章_第22张图片
iOS面试题第一章_第23张图片

总结的好,希望能收获一个赞  给点鼓励

这是第一章总结的面试题就有一大堆东西了

接下来还有第二章  或者我的地址去看看:http://www.jianshu.com/users/795c2ec428fd/latest_articles   也收藏了些干货。

谢谢大家的支持

你可能感兴趣的:(iOS面试题第一章)