ios面试题

初级面试题
1 #import 跟#include、@class有什么区别?#import<> 跟 #import""又什么区别?

2 属性关键字strong,weak,retain,assign,copy nomatic,readonly作用

3 View 视图的生命周期

4 static 关键字的作用

5 ios数据存储 数据持久化方式有哪几种, 有什么区别?

6 ios管理内存的机制是什么(聊ARC及引用计数)

7 

8 通知和代理的区别

9 什么是KVC和KVO?

10 深拷贝和浅拷贝的区别

11 单例模式及实现过程

12 关于多态的理解

13 ios常用的多线程有几种,谈谈他们之间的区别和联系

14 类别和类扩展的区别

15 atomic作用是什么,怎么实现的

16 对于语句NSString*obj = [[NSData alloc] init]; ,编译时和运行时obj分别是什么类型?

17 ViewController的didReceiveMemoryWarning是在什么时候调用的?默认的操作是什么?

18 什么是懒加载

19 @property 的本质是什么?

20 谈谈你是怎么屏幕适配的
中级面试题
1 UIView 和 CALayer 是什么关系?

2 setNeedsDisplay 和 layoutIfNeeded 两者是什么关系?

3 触摸事件传递,响应者链

4 UITableViewCell的卡顿你是怎么优化的?

5 atomic 修饰的属性是绝对安全的吗?为什么?

6 [load和initialize的区别](https://links.jianshu.com/go?to=https%3A%2F%2Fios.nobady.cn%2FRuntime.html%23_9-load%25E5%2592%258Cinitialize%25E7%259A%2584%25E5%258C%25BA%25E5%2588%25AB) 

7 你认为开发中那些导致crash?

8 BAD_ACCESS在什么情况下出现?

9 组件化有什么好处?

10 谈谈你在日常开发中的处理内存管理手段,场景.

11 __weak及__block区别

12 runloop和线程有什么关系?

13 runloop的mode作用是什么?

14不手动指定autoreleasepool的前提下,一个autorealese对象在什么时刻释放?(比如在一个vc的viewDidLoad中创建)

15 使用block时什么情况会发生引用循环,如何解决? 注意点及怎么修改外部变量?

16 使用系统的某些block api(如UIView的block版本写动画时),是否也考虑引用循环问题?

17 如何用GCD同步若干个异步调用?(如根据若干个url异步加载多张图片,然后在都下载完成后合成一张整图)

18 实现一个轮播图
高级面试题
源码分析 

1 DWebImage源码分析 

2 AFNetWorking源码分析

3 常用的刷新三方库 源码分析

综合

4介绍下App启动的完成过程?

5 KVO底层实现原理?

6 为什么一定要在主线程里面更新UI?——UIKit

7 weak修饰的释放则自动被置为nil的实现原理

8 autoreleasepool的原理和使用场景?

9 categroy为什么不能添加属性?怎么实现添加?与Extension的区别?category覆盖原类方法?多个category调用顺序

10 Block实现原理,开发注意事项?局部变量捕获流程

11 单例模式的理解,优点及缺点

**多线程**

12 日常多线程使用场景

13 日常怎么处理多线程线程安全的

14 实现一个多读单写

**Runtime  **

15 [runtime具体应用](https://links.jianshu.com/go?to=https%3A%2F%2Fios.nobady.cn%2FRuntime.html%23_6-runtime%25E5%2585%25B7%25E4%25BD%2593%25E5%25BA%2594%25E7%2594%25A8)

16 [isa指针的理解,对象的isa指针指向哪里?isa指针有哪两种类型?](https://links.jianshu.com/go?to=https%3A%2F%2Fios.nobady.cn%2FRuntime.html%23_2-isa%25E6%258C%2587%25E9%2592%2588%25E7%259A%2584%25E7%2590%2586%25E8%25A7%25A3%25EF%25BC%258C%25E5%25AF%25B9%25E8%25B1%25A1%25E7%259A%2584isa%25E6%258C%2587%25E9%2592%2588%25E6%258C%2587%25E5%2590%2591%25E5%2593%25AA%25E9%2587%258C%25EF%25BC%259Fisa%25E6%258C%2587%25E9%2592%2588%25E6%259C%2589%25E5%2593%25AA%25E4%25B8%25A4%25E7%25A7%258D%25E7%25B1%25BB%25E5%259E%258B%25EF%25BC%259F)

17 [runtime如何通过selector找到对应的IMP地址?](https://links.jianshu.com/go?to=https%3A%2F%2Fios.nobady.cn%2FRuntime.html%23_7-runtime%25E5%25A6%2582%25E4%25BD%2595%25E9%2580%259A%25E8%25BF%2587selector%25E6%2589%25BE%25E5%2588%25B0%25E5%25AF%25B9%25E5%25BA%2594%25E7%259A%2584imp%25E5%259C%25B0%25E5%259D%2580%25EF%25BC%259F)

1[8.简述下Objective-C中调用方法的过程](https://links.jianshu.com/go?to=https%3A%2F%2Fios.nobady.cn%2FRuntime.html%23_8-%25E7%25AE%2580%25E8%25BF%25B0%25E4%25B8%258Bobjective-c%25E4%25B8%25AD%25E8%25B0%2583%25E7%2594%25A8%25E6%2596%25B9%25E6%25B3%2595%25E7%259A%2584%25E8%25BF%2587%25E7%25A8%258B)(转发)

[19.怎么理解Objective-C是动态运行时语言。](https://links.jianshu.com/go?to=https%3A%2F%2Fios.nobady.cn%2FRuntime.html%23_9-load%25E5%2592%258Cinitialize%25E7%259A%2584%25E5%258C%25BA%25E5%2588%25AB)

**runloop的理解**

20 谈谈Runloop的理解及日常应用?

**性能优化**

2[1.造成tableView卡顿的原因有哪些?](https://links.jianshu.com/go?to=https%3A%2F%2Fios.nobady.cn%2FPerformance-optimization.html%23_1-%25E9%2580%25A0%25E6%2588%2590tableview%25E5%258D%25A1%25E9%25A1%25BF%25E7%259A%2584%25E5%258E%259F%25E5%259B%25A0%25E6%259C%2589%25E5%2593%25AA%25E4%25BA%259B%25EF%25BC%259F)

2[2.如何提升 tableview 的流畅度?](https://links.jianshu.com/go?to=https%3A%2F%2Fios.nobady.cn%2FPerformance-optimization.html%23_2-%25E5%25A6%2582%25E4%25BD%2595%25E6%258F%2590%25E5%258D%2587-tableview-%25E7%259A%2584%25E6%25B5%2581%25E7%2595%2585%25E5%25BA%25A6%25EF%25BC%259F)

2[3.APP启动时间应从哪些方面优化?](https://links.jianshu.com/go?to=https%3A%2F%2Fios.nobady.cn%2FPerformance-optimization.html%23_3-app%25E5%2590%25AF%25E5%258A%25A8%25E6%2597%25B6%25E9%2597%25B4%25E5%25BA%2594%25E4%25BB%258E%25E5%2593%25AA%25E4%25BA%259B%25E6%2596%25B9%25E9%259D%25A2%25E4%25BC%2598%25E5%258C%2596%25EF%25BC%259F)

2[4.如何降低APP包的大小](https://links.jianshu.com/go?to=https%3A%2F%2Fios.nobady.cn%2FPerformance-optimization.html%23_4-%25E5%25A6%2582%25E4%25BD%2595%25E9%2599%258D%25E4%25BD%258Eapp%25E5%258C%2585%25E7%259A%2584%25E5%25A4%25A7%25E5%25B0%258F)

2[5.如何检测离屏渲染与优化](https://links.jianshu.com/go?to=https%3A%2F%2Fios.nobady.cn%2FPerformance-optimization.html%23_5-%25E5%25A6%2582%25E4%25BD%2595%25E6%25A3%2580%25E6%25B5%258B%25E7%25A6%25BB%25E5%25B1%258F%25E6%25B8%25B2%25E6%259F%2593%25E4%25B8%258E%25E4%25BC%2598%25E5%258C%2596)

2[6.日常如何检查内存泄露?](https://links.jianshu.com/go?to=https%3A%2F%2Fios.nobady.cn%2FPerformance-optimization.html%23_6-%25E6%2597%25A5%25E5%25B8%25B8%25E5%25A6%2582%25E4%25BD%2595%25E6%25A3%2580%25E6%259F%25A5%25E5%2586%2585%25E5%25AD%2598%25E6%25B3%2584%25E9%259C%25B2%25EF%25BC%259F)

**调试技巧**

27常用的调试手段是什么

28[常见的崩溃类型有哪些?](https://links.jianshu.com/go?to=https%3A%2F%2Fios.nobady.cn%2FDebug-tips.html%23_3-ios-%25E5%25B8%25B8%25E8%25A7%2581%25E7%259A%2584%25E5%25B4%25A9%25E6%25BA%2583%25E7%25B1%25BB%25E5%259E%258B%25E6%259C%2589%25E5%2593%25AA%25E4%25BA%259B%25EF%25BC%259F)

**网络**

[29 .Http 和 Https 的区别?Https为什么更加安全?](https://links.jianshu.com/go?to=https%3A%2F%2Fios.nobady.cn%2FNetwork.html%23_2-http-%25E5%2592%258C-https-%25E7%259A%2584%25E5%258C%25BA%25E5%2588%25AB%25EF%25BC%259Fhttps%25E4%25B8%25BA%25E4%25BB%2580%25E4%25B9%2588%25E6%259B%25B4%25E5%258A%25A0%25E5%25AE%2589%25E5%2585%25A8%25EF%25BC%259F)

30 [.解释一下 三次握手 和 四次挥手](https://links.jianshu.com/go?to=https%3A%2F%2Fios.nobady.cn%2FNetwork.html%23_4-%25E8%25A7%25A3%25E9%2587%258A%25E4%25B8%2580%25E4%25B8%258B-%25E4%25B8%2589%25E6%25AC%25A1%25E6%258F%25A1%25E6%2589%258B-%25E5%2592%258C-%25E5%259B%259B%25E6%25AC%25A1%25E6%258C%25A5%25E6%2589%258B)

31 [TCP 和 UDP的区别](https://links.jianshu.com/go?to=https%3A%2F%2Fios.nobady.cn%2FNetwork.html%23_5-tcp-%25E5%2592%258C-udp%25E7%259A%2584%25E5%258C%25BA%25E5%2588%25AB)

32 Scoket连接和HTTP连接的区别:

33 [Cookie和Session](https://links.jianshu.com/go?to=https%3A%2F%2Fios.nobady.cn%2FNetwork.html%23_6-cookie%25E5%2592%258Csession)

**数据安全及加密 **

34 [.对称加密和非对称加密的区别?](https://links.jianshu.com/go?to=https%3A%2F%2Fios.nobady.cn%2FData-encryption.html%23_1-%25E5%25AF%25B9%25E7%25A7%25B0%25E5%258A%25A0%25E5%25AF%2586%25E5%2592%258C%25E9%259D%259E%25E5%25AF%25B9%25E7%25A7%25B0%25E5%258A%25A0%25E5%25AF%2586%25E7%259A%2584%25E5%258C%25BA%25E5%2588%25AB%25EF%25BC%259F)

35[.简述 SSL 加密的过程用了哪些加密方法,为何这么作?](https://links.jianshu.com/go?to=https%3A%2F%2Fios.nobady.cn%2FData-encryption.html%23_2-%25E7%25AE%2580%25E8%25BF%25B0-ssl-%25E5%258A%25A0%25E5%25AF%2586%25E7%259A%2584%25E8%25BF%2587%25E7%25A8%258B%25E7%2594%25A8%25E4%25BA%2586%25E5%2593%25AA%25E4%25BA%259B%25E5%258A%25A0%25E5%25AF%2586%25E6%2596%25B9%25E6%25B3%2595%25EF%25BC%258C%25E4%25B8%25BA%25E4%25BD%2595%25E8%25BF%2599%25E4%25B9%2588%25E4%25BD%259C%25EF%25BC%259F)

[36.iOS的签名机制是怎么样的](https://links.jianshu.com/go?to=https%3A%2F%2Fios.nobady.cn%2FData-encryption.html%23_3-ios%25E7%259A%2584%25E7%25AD%25BE%25E5%2590%258D%25E6%259C%25BA%25E5%2588%25B6%25E6%2598%25AF%25E6%2580%258E%25E4%25B9%2588%25E6%25A0%25B7%25E7%259A%2584)

**项目架构**

37 分别谈谈MVC、MVP、MVVM模式

**后记**

38 开发遇见的难点及解决方案
swift篇
1 对比oc及swift两种语言

2 Swift 中struct、Class的区别 (final)

3 举例说明Swift 里面有哪些类型是 OC 中没有的?

4 Swift 中如何阻止方法, 属性 下标 被子类改写?

5 什么叫 逃逸闭包? 如何让一个 自动闭包可以”逃逸”?

6 OC与Swift混编,怎么互相调用

你可能感兴趣的:(ios面试题)