码迷,mamicode.com
首页 > 移动开发 > 详细

iOS面试题

时间:2015-01-08 00:46:15      阅读:280      评论:0      收藏:0      [点我收藏+]

标签:

1,什么是notification,什么时候用delegate 什么时候用Notification?

 Notification 是通知中心 . 代理一般用于两个对象之间一对一的通信交互,而且需要设置一个协议方法,并且代理方要遵循这个协议并且实现其方法,双方之间要建立代理关系才可以实现通讯;通知一般用于一对多情况下地通讯,通信对象之间不需要建立代理关系,但是使用通知,代码阅读性差.

2浅拷贝和深拷贝的区别?

浅拷贝只复制对象本身,不对里面的属性复制

深拷贝不仅复制对象的本身,对象持有的属性对象也做复制.

3.Timer的间隔周期准吗?为什么?怎样实现一个精准的timer

timer的间隔周期一般是准确地,但是当主线程出现堵塞情况时,这样就有可能导致定时器延迟从而不准确,我们可以开一个多线程,在这个多线程上运行定时器,这样多线程只运行定时器不会因为堵塞而产生误差.

4.UIScrollerView用到了什么设计模式,还能在foundation库中找到类似的吗?

组合模式composition 所有的container view都用了这个模式

观察者模式observe ,所有的uiresponder都用了这个模式

模板(template)模式,所有的datasource 和delegate接口都是模板模式典型应用

 

5.UIView和CALayer有什么区别

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

6.UIView类animationWithDuration:animation:为例,简述UIView动画原理

 

7.autorelese和垃圾回收机制有什么关系?IPhoneOS有没有垃圾回收机制谈谈object-c的内存管理方式及过程?

A:autorelease是内存不够时自动释放,也就是杀后台程序,垃圾回收机制是杀那些优先级很低的程序,包括已经关掉有残留的. iOS开发只支持手动内存管理和ARC 模式

B:谁创建谁释放 当你用new copy,alloc 方法创建一个对象时,该对象的保留计数器值为1,当你不在使用该对象时,你就要负责向该对象发送一条release或作autorelease消息这样,该对象将在使用寿命结束时被销毁

  当你通过任何其他方式来获得一个对象时,则假设该对象的保留计数器值为1,而且已经被设置为自动释放,你不需要执行任何操作来确保该对象被清理,如果你打算在一段时间内拥有该对象

则需保留它并确保在操作完成时释放

如果你保存了某个对象,你需要(最终)释放或自动释放该对象,必须保持retain和release方法的使用次数相等.

8.简述push原理 push的证书和其他的有什么不一样?

第一阶段:服务器把要发送的消息、目的iPhone的标识打包,发给APNS。

第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发到iPhone。

第三阶段:iPhone把发来的消息传递给相应的应用程序, 并且按照设定弹出Push通知。

 

9.UIView的圆角属性设置方法,masksToBounds属性的作用

m_mainImgView.layer.cornerRadius = 6; m_mainImgView.layer.masksToBounds = YES;)

决定子layer是否被当前layer的边界剪切。默认是NO。

10.http和socket编程异同;

相同:都是都是基于TCP/IP 的网络通讯连接

不同点:http就是所谓的短连接,即客户端想服务器端发送一次请求,服务器端响应后会立即断掉

          socket就是所谓的长连接,理论上客户端和服务器端一旦建立连接就不会主动断掉

 

怎么把10个view围城一个圈 根据手势传动

通过GCD来做十个数据的计算 

AFNetWorking实现原理

SDWebimage实现机制

 

iOS面试题

标签:

原文地址:http://www.cnblogs.com/zhouzhongjin/p/4209781.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!