IOS技能树总结

最近记录一下iOS面试题,只做笔记,方便随时查看,如有不当之处感谢大牛指点。目录如下,持续更新。

技能要求

UI视图

OC语言

Runtime

内存管理

Block

多线程

RunLoop

网络

设计模式

架构/框架

算法

第三方

面试总结

1.技能要求

     初级:

精通Objective-C语言基础

精通UIKit等Cocoa Framework

熟悉网络通信机制以及常用数据传输协议

具备主流开源框架的使用经验

     中级:

扎实的编程基础、能够设计出良好的数据结构、能用一些算法解决一些实际的问题

能够深入的理解一些OC语言的机制(比如Runtime实际是OC语言的一个基石)、内存管理、网络、多线程、GUI

精通常用设计模式、框架、架构

良好的分析、解决问题的能力(源码的学习可以深入的了解一些解决问题的思路和逻辑,包括学习系统的设计方案和思想)

     高级:

解决研发过程中的关键问题和技术难题(创造性的提出一些解决方案)

调优设备流量、性能、电量等

较强的软件设计能力

对iOS内部原理有深刻理解

      资深:

精通高性能编程以及性能调优(ps: 对象的创建--前期就考虑用多线程处理这些问题  、大量字符串的遍历--选择一个较优的算法,在前期解决掉)

灵活运用数据结构、算法解决复杂程序设计问题

提供性能优化、日志搜集、统计分析等方案

架构、模块设计


2.UI视图

UITableView相关(重用机制的理解和运用方面,包括我们在UITableView的使用过程中,会涉及到对数据源的一个多线程的操作,这里面就涉及到了一个数据源同步的问题)

事件响应&视图响应

图像显示原理(UI视图的图像显示原理是怎样的?我们创建了一个控件,最后是如何转化到屏幕上的每一个像素点的呢?)

UI卡顿、掉帧

UI绘制原理/异步绘制原理

离屏渲染


3.OC语言

分类(分类的实现机制、原理是怎样的?我们应该怎样为一个分类提供实例变量呢?涉及到关联对象的考察)

关联对象

扩展、代理怎么使用

KVO、KVC( 系统的实现机制、原理、包括涉及到了哪些设计思想)

NSNotification

属性关键字


4.Runtime

对象、类对象、元类对象是怎么理解的?以及他们之间的关系是怎样的?

消息的传递机制是怎样的?

消息转发流程是怎样的?

方法缓存  (我们进行方法查找的过程当中,会使用到系统或者说Runtime中一个方法缓存的机制,这个机制又是怎样运行的呢?)

Methood-Swizzling是Runtime的一种运用,可能会结合实际的场景,比如说通过时长统计框架这样的考察来了解对于Runtime的Methood-Swizzling技术的一个实际的运用

动态添加方法

5.内存管理

ARC

MRC

引用计数机制

弱引用表

AutoReleasePool的实现机制和原理是怎样的

循环引用

6.Block

Block的本质(什么是block,你对block的理解)

截获变量特性

__block修饰符的本质(在什么情况下使用)

Block的内存管理

循环引用(Block经常会产生的循环引用)

7.多线程

GCD(讲述多线程的各种技术方案GCD、NSOperation/NSOperationQueue、NSThread)

NSOperation/NSOperationQueue

NSThread

线程同步、资源共享(在我们实际运用多线程运用技术过程中,所产生或者引发的线程同步、资源共享问题)

互斥锁、自旋锁、递归锁等相关锁的一些技术内容


8.RunLoop

什么是RunLoop?(剖析RunLoop的源码)

Mode/Source/Timer/Observer

事件循环机制(RunLoop有事做事,没事休息是由事件循环机制来维护的)

RunLoop与NSTimer之间的关系是怎样的?(我们在使用NSTimer的时候,应该怎样考虑和RunLoop的关系,包括RunLoop所带来的影响)

RunLoop与线程之间有什么关系?

如何通过RunLoop来实现常驻线程?


9.网络

HTTP协议(什么是HTTP,HTTP当中的get和post有什么区别)

HTTPS与网络安全(HTTPS连接建立流程是什么,它与安全又有怎么的关系呢)

TCP/UDP(TCP连接建立的三次握手,四次挥手以及UDP和长链接之间都有怎样的关系和含义呢)

DNS解析

Session/Cookie

10.设计模式

六大设计原则(设计模式所遵从的六大设计原则)

责任链

桥接

适配器

单例

命令


11.架构/框架

图片缓存框架

时长统计框架

复杂页面架构设计

客户端整体架构


12.算法

字符串反转

链表反转

有序数组合并

Hash算法

查找两个子视图的共同父视图

求无序数组当中的中位数


13.第三方库

AFNetworking

SDWebImageView

Reactive Cocoa

AsyncDisplayKit


14.章节结构

   真题入手-->技术原理-->企业级实践

————————————————

版权声明:本文为CSDN博主「ochenmengo」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/ochenmengo/article/details/104527860/

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,482评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,377评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,762评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,273评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,289评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,046评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,351评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,988评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,476评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,948评论 2 324
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,064评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,712评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,261评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,264评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,486评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,511评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,802评论 2 345

推荐阅读更多精彩内容

  • 1.设计模式是什么? 你知道哪些设计模式,并简要叙述? 设计模式是一种编码经验,就是用比较成熟的逻辑去处理某一种类...
    司马DE晴空阅读 1,277评论 0 7
  • 一、深复制和浅复制的区别? 1、浅复制:只是复制了指向对象的指针,即两个指针指向同一块内存单元!而不复制指向对象的...
    iOS_Alex阅读 1,358评论 1 27
  • 1. 父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。 1.1 深拷贝同浅拷贝...
    iYeso阅读 1,886评论 0 13
  • 1,NSObject中description属性的意义,它可以重写吗?答案:每当 NSLog(@"")函数中出现 ...
    eightzg阅读 4,132评论 2 19
  • 我慢慢明白我为什么不快乐,因为我总期待一个结果,看一本书期待它让我变深刻,运动时期待它让我一斤斤瘦下来,发一条短信...
    Kingsley刘家俊阅读 40评论 0 0