成都ios培训
达内成都高升桥中心

15023458194

热门课程

10道iOS常见面试试题及详解

  • 时间:2017-09-15 11:12
  • 发布:成都达内ios课程首页
  • 来源:ios培训

关于IOS的面试,成都达内IOS培训机构专家提出了下面10点经常遇见的面试问题!
1.ObjectC中创建线程的方法是什么?如果在主线程中执行代码,方法是什么?如果想延时执行代码、方法又是什么?  
解答:线程创建有三种方法:使用NSThread创建、使用GCD的dispatch、使用子类化的NSOperation,然后将其加入NSOperationQueue;在主线程执行代码,方法是performSelectorOnMainThread,如果想延时执行代码可以用performSelector:onThread:withObject:waitUntilDone:  
2.描述一下iOSSDK中如何实现MVC的开发模式  
解答:MVC是模型、试图、控制开发模式,对于iOSSDK,所有的View都是视图层的,它应该独立于模型层,由视图控制层来控制。所有的用户数据都是模型层,它应该独立于视图。所有的ViewController都是控制层,由它负责控制视图,访问模型数据。  
3.浅复制和深复制的区别?  
解答:浅层复制:只复制指向对象的指针,而不复制引用对象本身。深层复制:复制引用对象本身。意思就是说我有个A对象,复制一份后得到A_copy对象后,对于浅复制来说,A和A_copy指向的是同一个内存资源,复制的只不过是是一个指针,对象本身资源还是只有一份,那如果我们对A_copy执行了修改操作,那么发现A引用的对象同样被修改,这其实违背了我们复制拷贝的一个思想。深复制就好理解了,内存中存在了两份独立对象本身。用网上一哥们通俗的话将就是:浅复制好比你和你的影子,你完蛋,你的影子也完蛋深复制好比你和你的克隆人,你完蛋,你的克隆人还活着。  
4.类别的作用?继承和类别在实现中有何区别?  
解答:category可以在不获悉,不改变原来代码的情况下往里面添加新的方法,只能添加,不能删除修改。并且如果类别和原来类中的方法产生名称冲突,则类别将覆盖原来的方法,因为类别具有更高的优先级。  
类别主要有3个作用:  
(1)将类的实现分散到多个不同文件或多个不同框架中。  
(2)创建对私有方法的前向引用。  
(3)向对象添加非正式协议。  
继承可以增加,修改或者删除方法,并且可以增加属性。  
5.类别和类扩展的区别。  
解答:category和extensions的不同在于后者可以添加属性。另外后者添加的方法是必须要实现的。extensions可以认为是一个私有的Category。  
6.谈谈KVOandKVC?  
解答:kvc:键-值编码是一种间接访问对象的属性使用字符串来标识属性,而不是通过调用存取方法,直接或通过实例变量访问的机制。很多情况下可以简化程序代码。apple文档其实给了一个很好的例子。  
kvo:键值观察机制,他提供了观察某一属性变化的方法,极大的简化了代码。具体用看到嗯哼用到过的一个地方是对于按钮点击变化状态的的监控。  
7.frame和bounds有什么不同?  
解答:frame指的是:该view在父view坐标系统中的位置和大小。(参照点是父亲的坐标系统)bounds指的是:该view在本身坐标系统中的位置和大小。(参照点是本身坐标系统)  
8.Object-c的类可以多重继承么?可以实现多个接口么?重写一个类的方式用继承好还是分类好?为什么?  
解答:Objective-c只支持单继承,如果要实现多继承的话,可以通过类别和协议的方式来实现,cocoa中所有的类都是NSObject的子类,多继承在这里是用protocol委托代理来实现的。  
9.MVC是什么?  
解答:MVC设计模式考虑三种对象:模型对象、视图对象、和控制器对象。模型对象代表特别的知识和专业技能,它们负责保有应用程序的数据和定义操作数据的逻辑。视图对象知道如何显示应用程序的模型数据,而且可能允许用户对其进行编辑。控制器对象是应用程序的视图对象和模型对象之间的协调者。  
10.自动释放池跟GC(垃圾回收)有什么区别?iPhone上有GC么?[poolrelease]和[pooldrain]有什么区别?  
解答:iPhone上没有GC。iPhone开发的时候没有垃圾回收机制。在垃圾回收环境中,release是一个空操作。因此,NSAutoreleasePool提供了drain方法,在引用计数环境中,该方法的作用等同于调用release,但在垃圾回收环境中,它会触发垃圾回收(如果自上次垃圾回收以来分配的内存大于当前的阈值)。因此,在通常情况下,您应该使用drain而不是release来销毁自动释放池。
想要了解更多的关于IOS面试的相关知识,请继续关注成都IOS培训。

上一篇:IOS面试需要注意的问题!
下一篇:这大概是你遇见过相当古怪的面试题了!
选择城市和中心
贵州省

广西省

海南省