iOS面试题

一、基础题

1.简述gitflow工作流
2.开源项目贡献者提交代码的流程
3.讲一下生产者消费者模型
4.讲一下有限状态机
5.递归及优化,快排
6.http常见的状态码,及300以上状态码的修复方案
7.讲一下2/3/4次握手
8.进程/线程/携程的区别
9.怎样进行进程间通信
10.频繁http访问同一个域名下的资源,怎么提升连接效率

二、iOS开发题目

1.怎么无痕侵入一个对象的生命周期。
①hook init系列初始化方法,alloc/malloc不能hook;
②通过Category为指定类associate属性(需要一个傀儡类),在关联属性的dealloc中添加代码;
③创建weak的hashTable,在对象创建时放入hashTable中,虽然没有侵入对象生命周期,但是在特定场景下,会有妙用;
2.iOS中的委托模式、代理模式,
①能分清委托/代理模式的基本实现思路,不将代理和delegate混为一谈;
②能说出NSProxy
3.怎样设计一个安全的单例(如何避免绕过shareInstance方法创建对象)
4.block循环引用的原因,怎么解除循环引用
5.block怎么访问和修改作用域外的变量,__weak,__block原理
6.UITableView的性能优化
7.介绍一下OC的内存管理,自动引用计数的实现原理,autoreleasepool的用法
8.怎样在OC下实现一套GC机制
9.介绍一下iOS中的数据持久化方案
10.iOS中怎样实现多态,怎样实现多继承
①通过Protocol间接实现多态;
②通过NSProxy消息转发,实现多继承
11.底层库相互依赖严重,怎么解耦
12.怎么实现分享回跳特定页面
13.当发现某个页面卡顿时,如何分析卡顿的原因
14.介绍一下MVC/MVVM/MVP模式

三、开源项目

1.SDWebImage图片缓存原理,怎么隔离缓存池并说下需要这样做的业务场景
2.使用SDWebImage遇到大小图缓存,怎么进行优化
3.讲一下常用的开源项目,介绍一下开源项目的实现原理/流程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值