现在已经不断有网友发我他们在面试中遇到的面试题,这是一位程序媛前面在面试中遇到的问题
前面两个过于基础,从提高题开始分享;个人见解,勿喷
持续关注:请叫我Hank,持续输出各大公司iOS面试系列文章,欢迎广大程序猿找我投稿面试中碰到的面试题,我会给你一份我的见解和答案,前面已经分享100道我招聘的面试题,加入下方iOS技术交流群624212887直接获取
题一:what is purpose ofdelegates?
代理的⽬的是改变或传递控制链。允许⼀个类在某些特定时刻通知到其他类,而不需要获取到那些类的指针。可以减少框架复杂度。
什么是代理?
代理是⼀种通⽤的设计模式,代理主要由三部分组成
⼀、协议:用来指定代理双方可以做什么,必须做什么;
二、代理:根据指定的协议,完成委托⽅需要实现的功能;
三、委托:根据指定的协议,指定代理去完成什么功能。
代理的实现流程
在iOS中代理的本质就是代理对象内存的传递和操作,我们在委托类设置代理对象后,实际上只是⽤一个id类型的指针将代理对象进⾏了一个弱引⽤。委托⽅让代理方执⾏操作,实际上是在委托类中向这个id类型指针指向的对象发送消息,⽽这个id类型指针指向的对象,就是代理对象。
代理的内