初级面试题
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混编,怎么互相调用
网友评论