iOS面试用到的一些知识点和技术

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

缺陷:

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

MVVM:

MVP:

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

单例:

代理:

观察者:

动作/目标机制:

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

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

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

谢谢大家的支持

时间: 2024-10-10 10:24:58

iOS面试用到的一些知识点和技术的相关文章

李洪强iOS面试一般性问题

iOS面试一般性问题,学会这些拿offer几率提升90%! 面试题中有一些一般性的问题,通常是会问到的.面试iOS应聘者时,切入点很重要,不同的切入点会导致不同的结果,没有找到合适的切入点也无法对应聘者有一个全面的了解.所以下面的面试问题更多的是提供方向,没有固定的答案,而且可以根据应聘者的回应引出更多有意思深层次的讨论. 注意:以下问题的参考答案均为笔者所答,不代表正确,问题答案因人而异,请根据自己的实际情况回答,若认为不合理,请在评论中指出.下面所有的参考答案,都是笔者站在面试官的角度来分析

.NET程序员的iOS面试之旅

最近比较闲,昨天写了一篇ASP.NET程序员的Android学习之旅,算是总结了一下自己的Android学习过程,希望今年能有机会用Android做做项目.Android学习完之后自己买了mac开启iOS学习,年后本来想找个项目看看,出去面试的时候胜算也会大点,不过由于时间的关系,投了一些实习的简历出去,当时心里想的是我做过服务端,Android也懂点,iOS基础水平没问题,找一个实习工作应该可以的吧,但是事与愿违,简历筛选这一关都被拒掉了.不过后来陆陆续续接到一些面试的电话,我大概统计了一下,

iOS面试

高德iOS面试整理(顺序有些乱,一面跪了) 1.简单自我介绍 2.聊c语言 3.两个数比较大小不用if和三目运算符 4.int转化为bit数组 5.多态和隐藏 6.const 和define区别 7.String类实现拷贝构造函数注意事项,是否有必要重写 数据结构 1.树层次遍历 2.链表删除 iOS 1.通知和delegate 2.ViewController 生命周期,  手动代码View添加 3.iOS 的click事件的响应过程 4.通知和KVO比较 5.ARC和非ARC (问到静态分析

ios状态栏调整 简单动画的知识点

首先状态栏式view的属性,所以在viewController中直接重写: /** 修改状态栏 */ - (UIStatusBarStyle)preferredStatusBarStyle { // 修改状态栏的颜色(白色) return UIStatusBarStyleLightContent; } // 这种返回值没有*的说明不是对象,那么不是枚举就是结构体,大多数情况是枚举,所以取值也比较简单,一般是返回值后边加上状态: 在UIKit学习中常用的块动画: // 块动画 animateWit

iOS 面试问题的解答

关于一些 iOS 面试问题的解答 2015年04月26日 这篇 post 主要是对知乎上 iOS程序员的问题列表 的回答, 也算是对自己已有的知识进行整理. 如果你对本篇 post 中的回答有所疑问, 可以在下面留言. 如果有问题, 我一定会修改的 :-) 问题以及回答 1. 什么是 ARC? (ARC 是为了解决什么问题而诞生的?) ARC 是 Automatic Reference Counting 的缩写, 即自动引用计数. 这是苹果在 iOS5 中引入的内存管理机制. Objective

C C++ OC iOS面试重点问题(一)

C C++ OC iOS面试重点问题(一) 1.字符串常量需要加\0 2.逻辑运算 位操作(经典:实现两个数的交换) 3.关键字 4.引用和指针的区别和联系 5.如何引用一个已经定义过的全局变量?  答:可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变变量,假定你将那个变量写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错. 5.extern关键字的用法? 答:ext

[转] 上级向的十个iOS面试问题

上级向的十个iOS面试问题 转自 http://onevcat.com/2013/04/ios-interview/ 不管对于招聘和应聘来说,面试都是很重要的一个环节,特别对于开发者来说,面试中的技术问题环节不仅是企业对应聘者技能和积累的考察,也是一个开发者自我检验的好机会.对于iOS和Mac开发来说,因为本事还算比较新,企业对于这方面的开发者需求也比较大,所以面试时的要求可能并不是很高,一般能知道一些Cocoa和OC的基本知识也就认为可以了.但是对于一个希望拥有技术力基础的企业的iOS或者Ma

iOS面试宝典

前言 本篇文章总结多年来iOS开发人员面试常问到的问题,也希望能够带领刚入门的同志们走入职场.在准备去面试之前,你觉得自己到底有几斤几两呢?看看下面的问题吧!!! 新手必看 下面的文章是笔者推荐大家阅读的: iOS学习路线 iOS开发必懂 做好面试的准备 在收到通知到xxxx公司面试前,我们应该好好阅读下面的文章,做好充分的准备,不打无准备之仗. 我也面试过不少同学,在与他们的交谈中可以看出准备不足,面对一个个简单的问题,答非所问或者说了半天没有说到点上,于是给面试官一种菜鸟的形象. 本人只是本

ios面试技术要点

iOS面试 技术总结点(可参考):多线程 运行时 runloop app框架 几种动画编程 jsonmodel原理 sdwebimage原理 masonry怎么应用及原理 应用框架有哪些 说一下Facebook的flux框架 混合app原理 怎么优化内存 怎么用instruments优化动画效果  KVC/KVO的理解及运用 本地存储的几种方式CoreData问的最多https://www.zhihu.com/question/19604641 这里面很多问题都问过了https://www.zh