陆续面试了了一些大厂,感觉如果不留下点什么,有点说不过去,现将面试时,被问到的一些问题发出来,供大家一起学习参考吧。
- 自我介绍(虽然看着没什么,但是这个能给面试官一些基本的信息,一份好的自我介绍,还是值得我们花时间准备的)
- 命令行自动打包ipa的流程,由于本人是写了一个shell的脚本,进行的命令行打包。如果没做过的话问到的可能性不大。shell是如何传参,如何获取参数的, $0代表的代表的是什么。针对不同的target,如何进行打包,或者说设计一下shell脚本时需要传入的参数都会有哪些。
- atomic 和 nonatomic 的区别
- 手写@property (nonatomic, strong, readonly) NSString *context 的get 方法。前提是线程安全,lazy load的方式
- @property (atomic, strong) NSString *str; 如果重写了str的set方法,那atomic还有效吗?
- 写一个method 能满足输入[6, 5, 4, 3, 2, 1]数组 输出 [1, 2, 3, 4, 5, 6]数组
- http socket的区别,http是在网络里面的那一层。这里考的是网络传输的那7层。如何知道消息体的数据已经发送完成了。tcp udp的理解。
- 一个新的app的设计思路,主要看架构方面的想法
- 多个登录方式,比如qq, 微信,微博,手机号,邮箱等的登录,如果真对变化进行封装。这里考虑的更多的是设计模式上的问题。
- 事件响应链(比如点击事件)
- GCD中group的优点,及串行,并行队列
- 蓝牙连接用到的动态库(此题和个人的项目经历有关,没有用过的可忽略)
- framework时动态链接库还是静态链接库,和.a的区别是什么
- 将对象加入字典,array时的引用计数是多少
- weak的实现原理 strong的实现原理
- 关于引用计数的知识点
- 手写一个set方法
- block中的弱引用强引用,什么情况会导致循环引用,什么时候需要__strong保持强引用
- app的性能优化,都有哪些
- 对于image加载的优化方案有哪些
- Runloop, runtime的理解
关于大厂的面试题,会陆续的进行更新,希望对即将要面试和已经在面试路上的同学有所帮助。