iOS面试问题

一:  iOS常驻线程

二:  AFNetWorking 2.0与3.0的区别

三: 当开的后台线程太多, 如何进行内存管理

答: 详见:https://blog.csdn.net/yingbi2014/article/details/82804283

学习网址2:https://www.jianshu.com/p/80848fdd1e2a

四: 大家可能都听说过 HTTPS 协议之所以是安全的是因为 HTTPS 协议会对传输的数据进行加密,而加密过程是使用了非对称加密实现。但其实:HTTPS 在内容传输的加密上使用的是对称加密,非对称加密只作用在证书验证阶段。

主要使用了对称加密和非对称加密

连接建立过程使用非对称加密,保证安全

非对称加密很耗时!  因为加密和解密使用的手段不一样

数据传输过程是使用的对称加密,减少耗时所带来的性能损耗

Q: HTTPS 为什么安全?

A: 因为 HTTPS 保证了传输安全,防止传输过程被监听、防止数据被窃取,可以确认网站的真实性。

Q: HTTPS 的传输过程是怎样的?

A: 客户端打包请求   服务器端接受请求  服务器端返回数字证书 客户端生成加密信息。 客户端方发送加密信息。 服务端解锁加密信息。服务器端向客户端返回信息。 客户端解锁返回信息。

Q: 为什么需要证书?

A: 防止”中间人“攻击,同时可以为网站提供身份证明。

Q: 使用 HTTPS 会被抓包吗?

A: 会被抓包,HTTPS 只防止用户在不知情的情况下通信被监听,如果用户主动授信,是可以构建“中间人”网络,代理软件可以对传输内容进行解密。

好了,回归到本文标的问题,我们来总结回顾一下。

Q: HTTPS用的是对称加密还是非对称加密?

Q: HTTPS 在内容传输的加密上使用的是对称加密,非对称加密只作用在证书验证阶段。

六: 响应链机制

1、响应者链通常是由视图(UIView)构成的;

2、一个视图的下一个响应者是它视图控制器(UIViewController)(如果有的话),然后再转给它的父视图(Super View);

3、视图控制器(如果有的话)的下一个响应者为其管理的视图的父视图;

4、单例的窗口(UIWindow)的内容视图将指向窗口本身作为它的下一个响应者

需要指出的是,Cocoa Touch应用不像Cocoa应用,它只有一个UIWindow对象,因此整个响应者链要简单一点;

5、单例的应用(UIApplication)是一个响应者链的终点,它的下一个响应者指向nil,以结束整个循环。


七: iOS性能优化

tableview cell的复用

高度缓存

减少视图层级,不需要点击事件使用CALayer替代

圆角、阴影等造成离凭渲染的情况使用shawdow path来绘制

图片应该使用png图片,少使用其他格式的图片,图片大小跟控件一致,可以考虑将多张图片合成一张图片来显示。

减少透明视图

减少离屏渲染

合理使用光栅化(从GPU的操作转移到CPU,生成位图缓存起来,直接复用)

采用异步渲染

八: iOS数据库文件加密

答:  采用'FMDB/SQLCipher',  详见 https://www.cnblogs.com/levilinxi/p/4301913.html

九: ios 获取崩溃日志

答:   NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);   详见 https://www.jianshu.com/p/97336bc6da4a

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