面试题总结

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的优化:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 把网上的一些结合自己面试时遇到的面试题总结了一下,以后有新的还会再加进来。 1. OC 的理解与特性 OC 作为一...
    AlaricMurray阅读 2,617评论 0 20
  • 什么是ARC(ARC是为了解决什么问题诞生的)?ARC是Auto Reference Counting的缩写,即自...
    Tasselx阅读 8,138评论 8 72
  • 1.objective-c常见面试题:1、**OC **语言的基本特点OC 语言是 C 语言的一个超集,只是在 C...
    LZM轮回阅读 989评论 0 3
  • 首先申明:以下题目答案,仅是自己的总结,如有错误,还请多多指正。 一,谈一下对远程推送(苹果推送机制)的理解对于苹...
    心情的蛊惑阅读 457评论 3 5
  • 年初在别人的博客里看到这本书的,博主极力推荐,所以就把这本书放到了本年的读书计划里,过年期间读了一遍。书的作者是一...
    林家筱媛阅读 2,155评论 0 0