2020年面向iOS开发人员的知识点总结(更新中)
最近在整理自己的技术栈,收集了一些自己认为比较重要的知识点分享给大家。
Runloop1. iOS中触摸事件传递和响应原理
2. 为什么只有主线程的runloop
是开启的
3. 为什么只在主线程刷新UI
4.PerformSelector
和runloop
的关系
5.GCD 在Runloop中的使用?
6.AFNetworking 中如何运用 Runloop?
Runtime1.Category 的实现原理?
2.isa指针的理解,对象的isa指针指向哪里?isa指针有哪两种类型?
3.Objective-C 如何实现多重继承?
4.runtime 如何实现 weak 属性?
5.讲一下 OC 的消息机制
6.runtime具体应用
7.runtime如何通过selector找到对应的IMP地址?
8.简述下Objective-C中调用方法的过程
9.load和initialize的区别
10.怎么理解Objective-C是动态运行时语言。
KVO1. 实现原理
2. 通过KVC修改属性会触发KVO么?KVC的赋值和取值过程是怎样的?原理是什么?
3. 哪些情况下使用kvo会崩溃,怎么防护崩溃
4. kvo的优缺点
Blockblock
的内部实现,结构体是什么样的block是类吗,有哪些类型一个int
变量被__block
修饰与否的区别?block的变量截获block
在修改NSMutableArray
,需不需要添加__block
怎么进行内存管理的block
可以用strong
修饰吗解决循环引用时为什么要用__strong、__weak
修饰block
发生copy
时机Block
访问对象类型的auto变量
时,在ARC和MRC
下有什么区别多线程主要以GCD为主
iOS
开发中有多少类型的线程?分别对比GCD
有哪些队列,默认提供哪些队列GCD
有哪些方法apiGCD
主线程 & 主队列的关系如何实现同步,有多少方式就说多少dispatch_once
实现原理什么情况下会死锁有哪些类型的线程锁,分别介绍下作用和使用场景NSOperationQueue
中的maxConcurrentOperationCount
默认值NSTimer、CADisplayLink、dispatch_source_t
的优劣架构设计手动埋点、自动化埋点、可视化埋点MVC、MVP、MVVM
设计模式常见的设计模式单例的弊端常见的路由方案,以及优缺点对比如果保证项目的稳定性设计一个图片缓存框架(LRU)如何设计一个git diff
设计一个线程池?画出你的架构图你的app架构是什么,有什么优缺点、为什么这么做、怎么改进数据结构1.数据结构的存储一般常用的有几种?各有什么特点?
2.集合结构 线性结构 树形结构 图形结构
3.单向链表 双向链表 循环链表
4.数组和链表区别
5.堆、栈和队列
6.输入一棵二叉树的根结点,求该树的深度?
7.输入一课二叉树的根结点,判断该树是不是平衡二叉树?
8.字符串处理
算法这是我的iOS开发交流群:519832104不管你是小白还是大牛欢迎入驻,可以一起分享经验,讨论技术,共同学习成长!
另附上一份各好友收集的大厂面试题,需要iOS开发学习资料、面试真题,进群即可自行下载!
点击此处,立即与iOS大牛交流学习
1.时间复杂度
2.空间复杂度
3.常用的排序算法
4.字符串反转
5.链表反转(头差法)
6.有序数组合并
7.查找第一个只出现一次的字符(Hash查找)
8.查找两个子视图的共同父视图
9.无序数组中的中位数(快排思想)
10.给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
11.八大排序算法
Foundation1.nil、NIL、NSNULL 有什么区别?
2.如何实现一个线程安全的 NSMutableArray?
3.atomic 修饰的属性是绝对安全的吗?为什么?
4.实现 isEqual 和 hash 方法时要注意什么?
5.id 和 instanceType 有什么区别?
6.self和super的区别
7.@synthesize和@dynamic分别有什么作用?
8.typeof 和typeof,typeof的区别?
9.类族
10.struct和class的区别
UIKit1.UIView 和 CALayer 是什么关系?
2.Bounds 和 Frame 的区别?
3.setNeedsDisplay 和 layoutIfNeeded 两者是什么关系?
4.谈谈对UIResponder的理解
5.loadView的作用?
6.使用 drawRect有什么影响?
7.keyWindow 和 delegate的window有何区别
动画1.UIView动画与核心动画的区别?
2.当我们要做一些基于 CALayer 的动画时,有时需要设置 layer的锚点来配合动画,这时候我们需要注意什么?
图像处理1.图像的压缩方式
2.如何计算图片加载内存中所占的大小
数据安全及加密1.对称加密和非对称加密的区别?
2.简述 SSL 加密的过程用了哪些加密方法,为何这么作?
3.iOS的签名机制是怎么样的
WebViewJS 和 OC 互相调用的几种方式?2.在使用 WKWedView 时遇到过哪些问题?
组件化1.组件化有什么好处?
2.你是如何组件化解耦的?
3.为什么CTMediator方案优于基于Router的方案?
4.基于CTMediator的组件化方案,有哪些核心组成?
调试技巧1.LLDB常用的调试命令?
2.断点调试
3.iOS 常见的崩溃类型有哪些?
源码理解1.YYKit
2.SDWebImage加载图片过程
3.YYWebImage和SDWebImage对比
4.AFNetworking 底层原理分析
代码管理1.SVN与Git优缺点比较
2.Git与SVN的区别
持续集成1.你在项目中使用过什么持续集成方式?
2.jenkins怎么备份恢复
3.jenkins你都用了哪些插件?
查看更多:iOS面试题合集声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。