2019 iOS面试题大全---全方面剖析面试(下)

2019 iOS面试题大全---全方面剖析面试(下)_第1张图片

1、iOS block 的原理,block 的属性修饰词为什么用 copy,使用 block 时有哪些要注意的?

2、iOS 的热更新方案有哪些?介绍一下实现原理?

3、iOS class A 继承 class B,class B 继承 NSObject。画出完整的类图?

4、iOS 细致地讲一下事件传递流程?

5、iOS main()之前的过程有哪些?

6、iOS Category 中有 load 方法吗?load 方法是什么时候调用的?load 方法能继承吗?

7、iOS 讲一下你对 iOS 内存管理的理解?

8、iOS 你在项目中是怎么优化内存的?

9、iOS 讲讲 RunLoop,项目中有用到吗?

10、iOS 列表卡顿的原因可能有哪些?你平时是怎么优化的?

11、iOS 项目有没有做过组件化?或者你是否调研过?

12、iOS 讲一下 OC 的消息机制?

13、iOS ARC 都帮我们做了什么?

14、iOS 实现 isEqual 和 hash 方法时要注意什么?

15、iOS 线程安全的处理手段有哪些?把你想到的都说一下?

16、iOS 说一下 OperationQueue 和 GCD 的区别,以及各自的优势?

17、iOS Swift 中 struct 和 class 的区别?

18、iOS Swift 是如何实现多态的?

19、iOS Swift 和 OC,各自的优缺点有哪些?

20、iOS 如果让你实现 NSNotificationCenter,讲一下思路?

21、iOS 如果让你实现 GCD 的线程池,讲一下思路?

22、iOS 为什么是三次握手?为什么是四次挥手?三次挥手不行吗?

23、iOS 讲一下 HTTPS 密钥传输流程?

24、iOS 讲讲 MVC、MVVM、MVP,以及你在项目里具体是怎么写的?

25、iOS 系统框架里使用了哪些设计模式?至少说6个?

26、iOS 你自己用过哪些设计模式?

27、iOS 哪一个项目技术点最能体现自己的技术实力?具体讲一下

28、iOS 你在项目中遇到的最大的问题是什么?你是怎么解决的?

29、iOS 用 Alamofire 比直接使用 URLSession,优势是什么?

30、你是如何学习 iOS 的?

31、iOS 和产品经理、测试产生冲突时,你是怎么解决的?

32、iOS 手写一下快排?

33、iOS 遍历一个树,要求不能用递归?

34、iOS 找出两个字符串的最大公共子字符串?

35、iOS 为什么说Objective-C是一门动态的语言?

36、iOS 进程和线程的区别?同步异步的区别?并行和并发的区别?

37、iOS 用StoryBoard开发界面有什么弊端?如何避免?

38、iOS GCD的一些常用的函数?(group,barrier,信号量,线程同步)?

39、iOS block的实质是什么?一共有几种block?都是什么情况下生成的?

40、iOS 为什么在默认情况下无法修改被block捕获的变量? __block都做了什么?

41、iOS 模拟一下循环引用的一个情况?block实现界面反向传值如何实现?

42、iOS 什么时候会报unrecognized selector错误?iOS有哪些机制来避免走到这一步?

43、iOS objc在向一个对象发送消息时,发生了什么?

44、iOS 能否向编译后得到的类中增加实例变量?能否向运行时创建的类中添加实例变量?为什么

45、iOS runtime如何实现weak变量的自动置nil?

46、iOS 给类添加一个属性后,在类结构体里哪些元素会发生变化?

47、iOS runloop是来做什么的?runloop和线程有什么关系?主线程默认开启了runloop么?子线程呢?

48、iOS runloop的mode是用来做什么的?有几种mode?

49、iOS 苹果是如何实现Autorelease Pool的?

50、iOS 为什么把NSTimer对象以NSDefaultRunLoopMode(kCFRunLoopDefaultMode)添加到主运行循环以后,滑动scrollview的时候NSTimer却不动了?

51、iOS isa指针?(对象的isa,类对象的isa,元类的isa都要说)

52、iOS 运行时能增加成员变量么?能增加属性么?如果能,如何增加?如果不能,为什么?

53、iOS objc中向一个nil对象发送消息将会发生什么?(返回值是对象,是标量,结构体)

54、iOS UITableview的优化方法(缓存高度,异步绘制,减少层级,hide,避免离屏渲染)

55、iOS 有没有用过运行时,用它都能做什么?(交换方法,创建类,给新创建的类增加方法,改变isa指针)

56、iOS 看过哪些第三方框架的源码?都是如何实现的?(如果没有,问一下多图下载的设计)

57、iOS KVC的使用?实现原理?(KVC拿到key以后,是如何赋值的?知不知道集合操作符,能不能访问私有属性,能不能直接访问_ivar)

58、iOS UITableViewCell上有个UILabel,显示NSTimer实现的秒表时间,手指滚动cell过程中,label是否刷新,为什么?

59、iOS 有a、b、c、d 4个异步请求,如何判断a、b、c、d都完成执行?如果需要a、b、c、d顺序执行,该如何实现?

60、iOS 一个view已经初始化完毕,view上面添加了n个button,除用view的tag之外,还可以采用什么办法来找到自己想要的button来修改button的值?

61、iOS 浅复制和深复制的区别?

62、iOS MVC设计模式是什么? 你还熟悉什么设计模式?他们和MVC有什么不同的地方?

63、 iOS 内存管理的几条原则时什么?按照默认法则.哪些关键字生成的对象需要手动释放?在和property结合的时候如何有效的避免内存泄露?

64、iOS Objective-C如何对内存管理的,说说你的看法以及你遇到的问题以及解决方法?

65、iOS 以scheduledTimerWithTimeInterval的方式触发的timer,在滑动页面上的列表时,timer会暂停,为什么?该如何解决

2019 iOS面试题大全---全方面剖析面试(上)
iOS学习栈(将持续更新)上
iOS学习栈(将持续更新)下

给大家推荐一个iOS技术交流群,群内提供数据结构与算法、底层进阶、swift、逆向、底层面试题整合文档等免费资料!!!可以加本人微信拉你进群!


2019 iOS面试题大全---全方面剖析面试(下)_第2张图片

你可能感兴趣的:(2019 iOS面试题大全---全方面剖析面试(下))