iOS面试题 --- 中级

最近在准备ms,发现了一些比较尖锐的问题,可能平时开发注意不要,本身也会可是就是不能清晰的表达出来,问题比较宽泛再此作个总结(下面附部分答案,答案为本身理解结合百度,可能有些不标准欢迎各位提出意见)。问题持续更新,答案也持续更新。欢迎投稿。这些都会了我以为找工做应该没问题了。这些知识是一些简单的点,真正面试的时候确定会有比这儿更深的层次,这只是引出一个问题的点。仍是须要多学习面试

iOS底层

  1. KVO的实现原理,KVC是什么,他是如何实现的
  2. 请简单介绍一下Runtime,以及它的原理和应用(消息发送机制,动态解析。应用防止崩溃)
  3. 什么是block?(堆block,栈block,全局block)
  4. weak的实现原理。
  5. 通知和代理的区别。
  6. 说说你读过的第三方库工做流程。
  7. oc类的本质是什么?他的结构是什么,他是如何初始化的。
  8. Swift类的初始化发生了什么

架构

  1. 谈谈MVC,MVVM,MVP的三种架构各自的优缺点。

设计模式

  1. 适配器
  2. 装饰器
  3. 迭代器
  4. 工厂模式,抽象工厂,简单工厂模式的区别
  5. 对象池(可选)
  6. 适配器
  7. 代理
  8. 单例的优缺点

...算法

网络相关

  1. 什么是http,它与https的区别
  2. tcp和udp的区别,介绍一下三次握手,四次挥手,为啥链接要三次,断开要四次挥手
  3. alamofire或者AFN的证书认证。

线程

  1. 何时会形成线程死锁
  2. Runloop是什么以及它的工做流程
  3. NSOperation和GCD的区别。
  4. 线程与进程的区别。

数据结构与算法

  1. 链表是什么,如何肯定链表有环
  2. 如何用队列实现一个栈,或者用栈实现一个队列。
  3. 二分法查找的实现流程
  4. 说说你知道的排序算法的实现以及他们的时间复杂度,以及稳定性。
相关文章
相关标签/搜索