最新收录:各大厂iOS开发面试题 前言 iOS面试题真题

前言

关于面试题,可能没那么多时间来总结答案,有什么需要讨论的地方欢迎文末留言。主要记录一下准备过程,和面试的一些总结,希望能帮助到正在面试或者将要面试的朋友吧。

iOS面试题真题

美团外卖

  • uni-app这个东西是啥,你觉着咋样?
  • 从前台到后台的一次请求经历了哪些阶段?
  • http/https的工作过程和区别、它们属于五层中的哪一层
  • 三次握手的原理
  • get/put/post/delete请求方式
  • 项目里面你做了什么性能优化和启动改造
  • 为什么WKWebview的性能比UIWebview的性能高
  • runtime的消息转发机制
  • runtime的具体用法
  • KVC
  • @synthesize和@dynamic分别有什么作用
  • 36匹马,六个跑道。没有记时器等设备,用最少的比赛次数算出跑的最快的马
  • setNeedsDisplay、setNeedsLayout、layoutIfNeed区别
  • MGJRouter的作用

货拉拉

  • 项目里面值得认可的部分、RN桥接的一些东西
  • MVVM和MVC
  • 调试奔溃的工具
  • 做了什么操作让优化项目
  • get和post、http协议、网络请求这块问得比较多
  • 数据传输的格式json?xml?等等
  • 后台返回的数据是多少K的,大文件传输怎么办
  • 数据库的一些操作
  • iOS存储方式
  • TCP/IP协议
  • ARC引用计数、内存管理几个区域
  • OC的基础数据类型
  • 说一说多线程、在项目中怎么用的
  • 单例模式怎样设计的,有什么优缺点
  • 观察者模式、KVO的原理
  • 地图开发经验
  • 写uni-app的架构、serveice层、小程序上线流程
  • 为什么要写博客
  • 以后的发展方向

全网精选 · iOS面试题答案.pdf文集


小米

  • TCP和UDP,三次握手,追问改成两次会怎样,线程同步机制
  • 斐波拉契数列
  • 反转链表
  • RN跟原生相比的优劣,组件生命周期,项目基于RN哪个版本开发,双端适配问题
  • 平常如何学习,性能优化,项目难点在哪
  • 事件传递机制和响应机制
  • 什么时候view不会响应触摸事件,如何响应view以外的事件
  • 自动释放池
  • 内存管理机制
  • weak关键词在什么情况下用,与assgin的区别
  • weak底层原理
  • 什么时候会报unrecognized selector异常,底层实现原理,消息发送
  • runloop
  • 使用过哪些三方库
  • 问了些组件化的问题

滴滴

  • 二叉树搜索的思路
  • 反转链表
  • 项目中遇到的重大问题、如何解决的、解决后心态的变化
  • 组件化有用到哪些?说说你们后台分发的流程
  • block的循环引用是怎么产生的?在内部会不会加上__strong?为什么
  • block如何修改外部变量
  • runtime消息转发流程和结构体
  • GCD和NSOperation的利弊
  • 说一下runloop
  • 图片缓存的原理和图片移除的原理(主要考察最长时间算法)
  • 你知道的数据持久化的方式
  • 数据库用的哪些?FMDB、SQLite
  • 在读写数据库的时候使用的是几个线程
  • 说一下uni-app、这样设计架构的目的是什么
  • 单例、代理、观察者你喜欢用哪个
  • swift的struct和class的区别
  • swift的option是怎么实现的
  • 做了哪些性能优化和启动改造
  • 怎么与前端进行通信的

快手

  • weak的用途和原理。追问:key和value是怎样对应的?查找时怎样找到它清理的对象。
  • uitableview是什么模式实现的?
  • frame和bounds的区别
  • kvo的使用和原理
  • isa指针的说明
  • base64/md5加密/aes/rsa+des加密,在什么情况下用到了md5加密
    md5是一个非对称的校验算法。验证数据的真实性
  • block的结构和它造成的循环引用
  • 自动化打包
    平台通过脚本控制 远程打包 节省人力物力,解决冲突,走测试
    打包时间长怎么优化:bitcode是否开启 编译选项是否选上,模拟器环境去掉
    编译过程缩短:可执行文件 .o .h ipa包打开会看见,链接网络环境。
  • Autolayout,举了个栗子排布。uibutton宽度固定,uilabel怎么排
  • 离屏渲染的原理和例子
  • http传输的五层,一个浏览器向服务端发送url的过程。追问:解析ip地址的时候发生在哪一层。
  • 三次握手的原理,tcp在哪一层?ip在哪一层
  • 快速排序的复杂度、冒泡排序的复杂度
  • 手写两个链表合并
  • 手写字符串反转

趣拿

  • HTTPS和HTTP的区别
  • HTTPS传值过程
  • runtime发送消息的流程。给nil对象发送消息会怎样?
  • 根元类的isa指向,根元类的父类指向
    用runtime做过什么事情
  • Hook和aop
  • load和initail的调用时机
  • rn模块开发,反向传值是怎么传的
  • 同时重写getter和setter方法会怎样?
  • KVO的原理。追问:如果对这个类使用了KVC,再用反射方法去访问这个类,它返回的结果是什么?
  • 静态库动态库
  • 手写链表反转
  • 怎么判断有环
  • 二分查找
  • 斐波拉契
  • 快排

猿题库

  • oc的动态运行时体现在什么方面
  • runtime发送消息的流程,forwardTarget方法是做什么的?
  • kvo的实现过程
  • 要是让你设计一个通知模式,你会怎么做?怎么把方法传给外面要调用它的类?
  • crash的捕获原理
  • 两个透明的view都有button,view1放在view2上面,但是从界面看上去button像是放在一个view中。问此时点击两个button会发生什么事。
  • NSTimer什么时候会出现循环引用?怎么解决
  • RN的原理
  • HTTPS和HTTP的区别、五层模型
  • fps的检测
  • cs的基础
  • shell和ruby有写过脚本么
  • 找出数组中比它左边都要大比它右边要小的数放入到新的数组
  • wkwebview比uiwebview的区别

更多:iOS面试文集


此文:面试题收录来源

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章