美文网首页
面试进阶(一)

面试进阶(一)

作者: 撒花小仙女_卡卡 | 来源:发表于2019-06-17 13:23 被阅读0次

1、MVC与MVP的区别以及使用的优缺点。

MVC:Model用来存储数据 View用来展示 C将View与Model联系起来Model与View的耦合度较高C中的代码冗余

MVP:面向协议的编程View与Model完全没有任何联系 实现解偶

2、MVC经典的架构中说说有哪些常用的设计模式?

(delegate、dataSource代理模式)、(Notification、KVO观察者模式)、(target、action命令模式)、MVC中介者模式、策略模式(淘宝)

3、怎么解决iOS打包成功后,运行在iphone上会闪退、黑屏的问题?

证书有误

设备不在开发者账号里

访问相册相机时没有在plist文件里加访问权限

4、说一说OC中字典的实现原理?

字典可简单的理解为 [哈希表] (https://baike.baidu.com/item/哈希表/5981869?fr=aladdin)

哈希:什么是hash?[哈希] (https://baike.baidu.com/item/哈希表/5981869?fr=aladdin)

哈希表的本质为`数组`

[哈希函数] (https://baike.baidu.com/item/哈希函数/9796422?fr=aladdin)的本质为`映像`

5、iOS中消息发送机制与消息转发机制的区别?

消息发送机制:使用运行时,通过selector快速去查找IMP的过程 实例对象isa——>类对象isa———>元类isa———>根元类isa 本质是objc_msgSend()

消息转发机制:IMP找不到的时候,通过一些方法做转发处理

案例:当项目开发时 在cell里添加多个手势 而手势有时就会发生冲突 那样就会引发崩溃 此时我们就可以在冲突发生前进行消息转发 将冲突转发到别的类进行处理

6、组件间的通讯是通过什么方式来做的?请详细解释一下。

组件间的通讯,使用路由的方式来进行通讯。

之前的方式:

组件化方式:

路由可以简单的理解为中介类中介类里可以使用performSelector 和target 通过target 和action来唯一确认类里的方法

调用方法:

实际上为跳转过程(解偶)

7、SDWebImage是怎么来清理缓存的?

清理磁盘缓存:

总结:

1、根据时间顺序(7天周期,默认7天)过期的删除

2、把之前没删除的按时间顺序存起来,根据自定义的最大缓存(为设置最大缓存,默认最大缓存为磁盘大小),删除到最大缓存的一半为止。(设置自定义最大缓存才会走这一步自定义)一般情况下不设置最大缓存量,据需求而定。

8、SDWebImage是怎么处理接收的内存警告的?


9、SDWe bImage中怎么计算图片的成本大小


注意:当手机端下载图片时,根据scale缩放因子来判断是@2x还是@3x的图片。


10、SDWebImage中clear和clean有什么区别?


最大区别:

clear是全部删除(清空)整个文件夹删除,再创建文件夹。

clean是部分删除:

1)根据周期 

 2)根据磁盘最大缓存

相关文章

网友评论

      本文标题:面试进阶(一)

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