当前位置 > 主页 > 万和大讲堂 >


南京iOS培训分享iOS开发面试高频题(二)

2016-06-01 13:32

  前面南京万和iOS培训给大家整理了南京iOS培训分享iOS开发面试高频题(一),今天继续和大家分享一些比较重要和经常问的面试题,希望小伙伴们都能如愿找到理想的工作。


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


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


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


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


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


  两份独立对象本身。


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


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


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


  12.类别的作用?继承和类别在实现中有何区别?


  答:category 可以在不获悉,不改变原来代码的情况下往里面添加新的方法,只能添加,不能删除修改,并且如果类别和原来类中的方法产生名称冲突,则类别将覆盖原来的方法,因为类别具有更高的优先级。有疑惑?咨询南京万和iOS开发培训


  类别主要有3个作用:


  1).将类的实现分散到多个不同文件或多个不同框架中。


  2).创建对私有方法的前向引用。


  3).向对象添加非正式协议。


  继承可以增加,修改或者删除方法,并且可以增加属性。


  13.类别和类扩展的区别。


  答:category和extensions的不同在于 后者可以添加属性。另外后者添加的方法是必须要实现的。


  extensions可以认为是一个私有的Category。


  14.代理的作用?


  答:代理的目的是改变或传递控制链。允许一个类在某些特定时刻通知到其他类,而不需要获取到那些类的指针。可以减少框架复杂度。


  另外一点,代理可以理解为java中的回调监听机制的一种类似。


  15.oc中可修改和不可以修改类型。


  答:可修改不可修改的集合类。这个我个人简单理解就是可动态添加修改和不可动态添加修改一样。


  比如NSArray和NSMutableArray。前者在初始化后的内存控件就是固定不可变的,后者可以添加等,可以动态申请新的内存空间。更多内容,咨询南京万和iOS开发培训


  16.OC的垃圾回收机制?


  答: OC2.0有Garbage collection,但是iOS平台不提供。


  一般我们了解的objective-c对于内存管理都是手动操作的,但是也有自动释放池。


  但是差了大部分资料,貌似不要和arc机制搞混就好了。


  17.什么是延迟加载?


  答:懒汉模式,只在用到的时候才去初始化。


  也可以理解成延时加载。


  我觉得最好也最简单的一个列子就是tableView中图片的加载显示了。


  一个延时载,避免内存过高,一个异步加载,避免线程堵塞。


  18.什么时候使用NSMutableArray,什么时候使用NSArray?


  答:当数组在程序运行时,需要不断变化的,使用NSMutableArray,当数组在初始化后,便不再改变的,使用NSArray。需要指出的是,使用NSArray只表明的是该数组在运行时不发生改变,即不能往NSAarry的数组里新增和删除元素,但不表明其数组內的元素的内容不能发生改变。NSArray是线程安全的,NSMutableArray不是线程安全的,多线程使用到NSMutableArray需要注意。更多内容,咨询南京万和iOS开发培训


  19.类NSObject的那些方法经常被使用?


  答:NSObject是Objetive-C的基类,其由NSObject类及一系列协议构成。


  其中类方法alloc、class、 description 对象方法init、dealloc、– performSelector:withObject:afterDelay:等经常被使用


  20.在iPhone应用中如何保存数据?


  答:有以下几种保存机制:


  1).通过web服务,保存在服务器上


  2).通过NSCoder固化机制,将对象保存在文件中


  3).通过SQlite或CoreData保存在文件数据库中


  通过本文iOS面试题的汇总和解析,能帮助iOS开发者顺利找到理想的工作。后续南京万和iOS开发培训还会给大家整理更多的面试题,祝大家顺利找到理想的工作。


  相关阅读:南京iOS培训分享iOS开发面试高频题(一)


最近开班 more>
  • Python基础班
  • Java全栈开发
  • 前端基础班
  • 软件测试
  • 云原生精英班
  • 云网预科班
  • CISP
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • OCM 12C
  • OCP 19C
  • RHCE 9.0
  • 随时开课
  • 12月26日
  • 随时开课
  • 12月4日
  • 12月16日
  • 12月9日
  • 12月21日
  • 1月6日
  • 12月30日
  • 12月16日
  • 12月21日
  • 12月7日
  • 12月7日
  • ——
  • 随时开课
  • 12月16日
    • 姓 名 :
    • 电 话 :
    • 课 程 :

技术交流群

  • Java大数据交流群560819979加入
  • Python技术交流群595083299加入
  • Oracle技术交流群595119011加入
  • Web前端技术交流群604697610加入
  • Huawei技术交流群482919361加入
  • Redhat技术交流群587875348加入
  • UI设计技术交流群511649801加入
  • Cisco技术交流群596886705加入
  • IT运维技术交流群605888381加入