iOS面试题6

1.什么是KVC 

KVC,即是指 NSKeyValueCoding,一个非正式的Protocol,提供一种机制来间接访问对象的属性。而不是通过调用Setter、Getter方法访问。KVO 就是基于 KVC 实现的关键技术之一。

2.AFNetworking实现原理 

AFNetworking3.0之前是NSURLConnection, 之后是NSURLSession, 包括一些线程的优化以及封装等

3.浅复制和深复制的区别? 

答案:浅层复制:只复制指向对象的指针,而不复制引用对象本身。 

深层复制:复制引用对象本身。 

意思就是说我有个A对象,复制一份后得到A_copy对象后,对于浅复制来说,A和A_copy指向的是同一个内存资源,复制的只不过是是一个指针,对象本身资源 

还是只有一份,那如果我们对A_copy执行了修改操作,那么发现A引用的对象同样被修改,这其实违背了我们复制拷贝的一个思想。深复制就好理解了,内存中存在了两份独立对象本身。 

用网上一哥们通俗的话将就是: 

浅复制好比你和你的影子,你完蛋,你的影子也完蛋 

深复制好比你和你的克隆人,你完蛋,你的克隆人还活着。

4.传递者链 和响应者链 

答案: 响应者链应该是:First Responser—-> UIView -- > The Window -- >The Application -- > App Delegate 

传递者链 UIWindow -> UIView -> Next UIView -> NextView (直到用户触碰的那个View)

5.app退到后台,有的再点开还是之前的页面,有的点开是重启,怎么设置 

Appdelegate方法里 有个进入后台 和将要返回到前台的设置 在你将要从后台进入前台的方法里 去重新设置window的 rootViewcontrller

6.重新@property (nonatomic, copy) NSString *name; 的setter方法原型; 

(void)setName:(NSString *)name 

if(_name){ 

[ _name release]; 

_name = [name copy]; 

}

iOS 面试题1

iOS 面试题2

iOS 面试题3

iOS 面试题4

iOS 面试题5

你可能感兴趣的:(iOS面试题6)