iOS面试主要方面
-
runtime
1.1 runtime能做什么。
1.2 runtime包含的内容。
1.3 catagory作用以及和extention区别。
1.4 load 和 initiallize的区别。
1.5 消息发送过程。
1.6 OC实现多继承的方式。 -
iOS如果管理内存的。
2.1 引用计数器怎么算的。
2.2 strong、weak、assign、atomic等区别。
2.3 实例对象释放时机。
2.4 autoreleasepool 原理。
2.5 循环引用问题。(NSTimer,block等) -
runloop
3.1 runloop概念。
3.2 runloop原理。
3.3 runloop的使用。
3.4 runloop和runtime以及autoreleasepool之间的关系。包括和线程之间的关系。 -
iOS的设计模式
4.1 单例,注意dispatch_once和@synchronized区别和联系。为什么使用dispatch_once更好一些,使用dispatch_once会有哪些问题。
4.2 通知,实现原理。
4.3 KVC,实现原理。
4.4 KVO,实现原理。 -
多线程
5.1 GCD主要方法。
5.2 GCD的信号通知方式有几种。(信号量、group、barrier)
5.3 线程死锁问题。
可深可浅 -
响应者链
6.1 一个按钮的点击事件怎么实现的。
6.2 手势冲突怎么解决的。
6.3 UI覆盖情况下各种不同情况怎么相应的。
6.4 响应和runloop关系。
6.5 window覆盖以及优先级问题。 -
算法
7.1 排序算法尤其是快排、堆排序、插入排序。
7.2 二叉树层次遍历和深度遍历。
7.3 单链表反转以及删除。
7.4 哈希表的应用。比如,如何快速的查找到两个view的第一个公共父view。 -
网络
8.1TCP三次握手,四次挥手。
8.2 https 握手过程简单描述。
8.3 为什么https是安全的。
网友评论