哪些是iOS开发面试常见题型?

作者:达内 更新时间:2014-06-17 12:05 来源:未知 点击:
学习iOS开发是一件需要持之以恒的事情,想要学好,一定要钻营,如果见到难题就躲,那么也只会半途而废,下面是达内科技为你提供的iOS开发面试常见题型,同学们,是不是摩拳擦掌
   学习iOS开发是一件需要持之以恒的事情,想要学好,一定要钻营,如果见到难题就躲,那么也只会半途而废,下面是达内科技为你提供的iOS开发面试常见题型,同学们,是不是摩拳擦掌了呢?开始答题吧!
< span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px Arial, Verdana, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(34,34,34); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> 
< span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px Arial, Verdana, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(34,34,34); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> 1. 自动释放池是什么,如何工作   当您向一个对象发送一个autorelease消息时,Cocoa就会将该对象的一个引用放入到最新的自动释放池。它仍然是个正当的对象,因此自动释放池定义的作用域内的其它对象可以向它发送消息。当程序执行到作用域结束的位置时,自动释放池就会被释放,池中的所有对象也就被释放。
< span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px Arial, Verdana, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(34,34,34); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> 2.   ojc-c 是通过一种"referringcounting"(引用计数)的方式来管理内存的, 对象在开始分配内存(alloc)的时候引用计数为一,以后每当碰到有copy,retain的时候引用计数都会加一, 每当碰到release和aut oreleaseFoundation和Application Kit 框架中的一些类只允许创建单件对象,即这些类在当前进程中的唯一实例。举例来说,NSFileManager和NSWorkspace 类在使用时都是基于进程进行单件对象的实例化。当向这些类请求实例的时候, 们会向您传递单一实例的一个引用,如果该实例还不存在,则首先进行实例的分配和初始化。单件对象充当控制中心的角色,负责指引或协调类的各种服务。如果类在概念上只有一个实例(比如 NSWorkspace),就应该产生一个单件实例,而不是多个实例;如果将来某一天可能有多个实例,您可 以使用单件实例机制,而不是工厂方法或函数。 
< span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px Arial, Verdana, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(34,34,34); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">    2..动态绑定—在运行时确定要调用的方法  动态绑定将调用方法的确定也推迟到运行时。在编译时,方法的调用并不和代码绑定在一起,只有在消实发送出来之后,才确定被调用的代码。通 动态类型和动态绑定技术,您的代码每次执行都可以得到不同的结果。运行时因子负责确定消息的接收者和被调用的方法。运行时的消息分发机制为动态绑定提供支持。当您向一个动态类型确定了的对象发送消息时,运行环境系统会通过接收者的isa指针定位对象的类,并以此为起点确定被调用的方法,方法和消息是动态绑定的。而且,您不必在Objective-C 代码中做任何工作,就可以自动获取动态绑定的好处。您在每次发送消息时, 
< span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px Arial, Verdana, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(34,34,34); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> 特别是当消息的接收者是动态类型已经确定的对象时,动态绑定就会例行而透明地发生。
< span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px Arial, Verdana, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(34,34,34); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">3..obj-c的优缺点  objc优点:
< span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px Arial, Verdana, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(34,34,34); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">   1)Cateogies  
< span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px Arial, Verdana, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(34,34,34); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">  2) Posing  
< span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px Arial, Verdana, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(34,34,34); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">  3) 动态识别 
< span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px Arial, Verdana, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(34,34,34); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">  4) 指标计算 
< span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px Arial, Verdana, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(34,34,34); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">   5)弹性讯息传递 
< span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px Arial, Verdana, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(34,34,34); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">  6) 不是一个过度复杂的 C 衍生语言  
< span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px Arial, Verdana, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(34,34,34); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> 7) Objective-C 与 C++ 可混合编程  
< span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px Arial, Verdana, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(34,34,34); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> 缺点:  
< span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px Arial, Verdana, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(34,34,34); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">  1) 不支援命名空間 
< span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px Arial, Verdana, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(34,34,34); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">   2)  不支持运算符重载 
< span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px Arial, Verdana, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(34,34,34); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">  3)不支持多重继承
< span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px Arial, Verdana, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(34,34,34); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">    4)使用动态运行时类型,所有的方法都是函数调用,所以很多编译时优化方法都用不到。(如内联函数等),性能低劣。
< span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px Arial, Verdana, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(34,34,34); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">  4. readwrite,readonly,assign,retain,copy,nonatomic 属性的作用?  @property是一个属性访问声明,扩号内支持以下几个属性: 1,getter=getterName,setter=setterName,设置setter与 getter的方法名 2,readwrite,readonly,设置可供访问级别 2,assign,setter方法直接赋值,不进行任何retain操作,为了解决原类型与环循引用问题 3,retain,setter方法对参数进行release旧值再retain新值,
< span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px Arial, Verdana, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(34,34,34); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> 所有 实现都是这个顺序(CC上有相关资料) 4,copy,setter方法进行Copy操作,与retain处理流程一样,先旧值release,再 Copy出新的对象,retainCount为1。这是为了减少对上下文的依赖而引入的机制。 5,nonatomic,非原子性访问,不加同步,多线程并发访问会提高性能。注意,如果不加此属性,则默认是两个访问方法都为原子型事务访问。
< span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px Arial, Verdana, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(34,34,34); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> 
< span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 12px Arial, Verdana, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(34,34,34); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">不知道你答的怎么样?不论结果好与坏,只要现在都会了,那么这就是你学习的收获。
标签:

相关阅读

最新开班信息

3G-IOS软件工程师就业班
北京潘家园中心 开课日期:9月29日
3G-IOS软件工程师就业班
北京潘家园中心 开课日期:9月29日
3G-IOS软件工程师周末班
北京潘家园中心 开课日期:9月29日
3G-IOS软件工程师周末班
北京潘家园中心 开课日期:9月29日