iOS面试问题

作者: 前端组件分享 | 来源:发表于2020-11-24 17:35 被阅读0次

    一:  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面试问题

        本文链接:https://www.haomeiwen.com/subject/mrqwiktx.html