美文网首页
面试题总结

面试题总结

作者: 凌啸寒 | 来源:发表于2016-06-30 21:20 被阅读21次

    1.单例设计模式的实现,为什么使用单例模式??                           static  MusicManager *manager=nil;                               

    @implementation MusicManager

    //获取单例的方法

    +(MusicManager*)defaultManager

    {

         //只调用一次,保证线程安全

         static  dispa tch_once_t  onceToken

         dispatch_once(&onceToken,^{

                  if(manager == nil){

                  manager = [[MusicManager alloc]init];

                  }

         });

          return   manager;

    }

    为什么使用单例设计??

        1.单例设计是用来限制一个类只能创建一个对象,那么此对象中的属性可以存储全局共享的数据,所有的类都可以访问,设置此单例对象中的属性数据。2.如果一个类创建的时候非常消耗性能,那么此类可以设置为单例节约性能,只要能够满足需求。

    2.CALayer层和UIView的区别是什么???

           两者最大的区别是,图层不会直接渲染到屏幕上,UIView是iOS系统中界面元素的基础,所有的界面元素都是继承于它。它本身是有CoreAnimation来实现的,它真正的绘图部分,是由一个CALayer类来管理的。而UIView就像是CALayer的管理器,一个UIView上可以有多个CALayer,每个都可以显示一种东西,从而增强UIView的展现能力。

    3.设计模式:

         MVC,单例,工厂,KVO,策略

         MVC是一种架构设计,M表示数据模型,V表示视图,C表示控制器

         1>数据模型:负责存储,定义,操作数据

         2>视图:用来展示数据给用户,和用户进行操作交互

         3>控制器是M和V的协调者,控制器获取数据,将数据交给视图去展示 

    4.数据持久化存储的方式:

          plist,归档,NSUserdefaults,数据库(FMDB,CoreData)

    5.UITableView的复用机制:

    6.系统创建多线程的方式:

        GCD,NSOperation,NSThread

    7.OC中继承和类别的区别:

        继承是继承父类的方法,子类拥有父类的属性或者方法,类别是为某个类添加一些新的方法,优先使用自己的方法。

    8.KVO和KVC的区别:

    9.响应者链:

         响应者链表示一系列的响应者对象,事件被交由第一响应者对象处理,如果第一响应者不处理,时间被沿着响应者莲向上传递,交给下一个响应者,一般来说,第一响应者是个视图对象或者其子类对象,当其被触摸后时间呗交由它处理,如果它不处理,事件就会被传递给它的视图控制器对象,若存在,就是它的父视图对象,若还存在,直到顶层视图。接下来会沿着顶层视图到窗口,再到程序,如果整个过程都没有响应这个事件,改事件就会被丢弃。

    10.UItableView的优化:

    相关文章

      网友评论

          本文标题:面试题总结

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