background image
固定的一组行为的抽象描述,但是这组行为却能够有任意个可能的具体实现方式。这个抽象
描述就是抽象类。 
(2)用于拓展对象的行为功能 
这一组任意个可能的具体实现则表现为所有可能的派生类(子类),模块可以操作一个抽象
体。由于模块依赖于一个固定的抽象体,因此它可以是不允许修改的;同时,通过从这个抽
象体派生,也可扩展此模块的行为功能。 
 
四、objc 中向一个 nil 对象发送消息会发生什么? 
如果没有返回值,nothing will happen; 
如果有返回值,基本数据类型返回 0/0.0/NO 等,对象类型返回 nil,总的来说就是返回一
个假的东西。 
 
五、runloop 和线程有什么联系? 
Runloop 和线程的关系:一个 Runloop 对应着一条唯一的线程 
问题:如何让子线程不死 
回答:给这条子线程开启一个 Runloop 
Runloop 的创建:主线程 Runloop 已经创建好了,子线程的 runloop 需要手动创建 
Runloop 的生命周期:在第一次获取时创建,在线程结束时销 
 
六、  什么是懒汉模式,一般用在哪些地方? 
懒加载,指得是需要用到的时候才加载,其好处是节省内存空间,不必一开始就创建所有的变
量,用到了就创建一块内存,同时也加快了程序运行速度.一般用于我们只需要创建一次的变
量就可以的地方,例如字典转模型的数组,以及控制器的 view 等,都是懒加载的 
 
七、常用的延时执行的几种方式? 
perform selector 
NSTimer 
GCD:dispatch_after 
 
八、写出你想到的设计模式,并简要描述? 
单例模式:不管怎么创建,拿到的对象都是同一个 
MVC : MVC 把软件系统分为三个部分:Model,View,Controller。 
MVC 有低耦合性、高重用性、可维护性等优点