iOS笔试题02

1. Difference between shallow copy and deep copy?

1> 浅拷贝:指针(地址)拷贝,不会产生新对象 java

2> 深拷贝:内容拷贝,会产生新对象服务器

 

2. What is advantage of categories? What is difference between implementing a category and inheritance? 

类别主要有3个做⽤:
(1)将类的实现分散到多个不一样⽂件或多个不一样框架中。
(2)建立对私有⽅法的前向引⽤。
(3)向对象添加⾮正式协议。网络

1> 分类能够在不修改原来类模型的基础上拓充方法框架

2> 分类只能扩充方法、不能扩充成员变量;继承能够扩充方法和成员变量,异步

会产生新的类this

 

3. Difference between categories and extensions?


1> 分类是有名称的,类扩展没有名称spa

2> 分类只能扩充方法、不能扩充成员变量;类扩展能够扩充方法和成员变量代理

3> 类扩展通常就写在.m文件中,用来扩充私有的方法和成员变量(属性)指针

注意:继承和类扩展均可以扩充方法和成员变量,可是继承会产生新的类,可是类扩展不会产生新的类。对象

4. Difference between protocol in objective c and interfaces in java?


1> Java的接口中声明的方法必须都实现

2> Oc的protocol中声明的方法并不必定要实现

注意:protocol简单来讲就是一系列方法列表,能够声明不少方法,声明方法能够被任何类实现,称为代理模式。

 

5. What are mutable and immutable types in Objective C?


1> mutable是可变类型,好比NSMutableArray,能够动态往里面添加元素

2> immutable是不可变类型,好比NSArray,固定的存储空间,不能添加元素

 

6. When we call objective c is runtime language what does it mean?


 

1> 动态绑定:对象类型在运行时才真正肯定 

 

2> 多态性

 

3> 消息机制

 

 

 

 

 

7. What is push notification?


 

1> 本地推送:程序内部弹出通知到用户设备

 

2> 远程推送:由推送服务器推送通知到用户设备

 

 

 

8. What is Polymorphism

 

多态:父类指针指向子类对象

 

 

 

 

 

9. What is responder chain?


 


 响应者链:

 

l UIResponder有一个nextResponder属性,经过该属性能够组成一个响应者链,事件或消息在其路径上进行传递

 

l 若是UIResponder没有处理传给它的事件,会将未处理的消息转发给本身的nextResponder

 

 

10. Difference between frame and bounds?
 

1> frame以父控件的左上角为坐标原点

2> bounds以控件自己的左上角为坐标原点

 

11. Difference between method and selector?


selector是一个方法的名字,经过一个selector能够找到方法地址,进而调用一个方法 ;method是一个组合体,包含了名字和实现.

12. Is there any garbage collection mechanism in Objective C.?


1> OC 1.0没有垃圾回收

2> OC 2.0有垃圾回收,只能用在Mac

3> iOS中有ARC机制,是编译器特性,垃圾回收是运行时特性

 

13. What is NSOperation queue?


1> 用来存放NSOperation对象的队列,能够用来异步执行一些操做

2> 通常能够用在网络请求等耗时操做

 

14. What is lazy loading?


延迟加载:好比控制器的view,在第一次用到view时才会调用loadView方法进行建立

15. Can we use two tableview controllers on one viewcontroller?

一个控制器内部添加2个表格控制器是没有问题的,加判断条件判断是哪一个tableview。

 

16. Can we use one tableview with two different datasources? How you will achieve this?



从对象属性上分析,tableView只有一个dataSource属性。固然,真要使用2个不一样的数据源,也是能够的。

相关文章
相关标签/搜索