江苏万和IT教育 发表于 2016-7-21 11:54:43

iOS开发面试,不得不看的高频面试题 南京iOS培训分享

  对于要面试iOS开发的同学,可能已经看了很多的面试题。但是网上很多的面试题有些很全,但是没有重点,有些又太少。今天南京万和iOS培训给大家整理了一些比较重要和经常问的面试题。
  1.#import 跟#include 又什么区别,@class呢, #import<> 跟 #import””又什么区别?
  答:#import是Objective-C导入头文件的关键字,#include是C/C++导入头文件的关键字,使用#import头文件会自动只导入一次,不会重复导入,相当于#include和#pragma once;@class告诉编译器某个类的声明,当执行时,才去查看类的实现文件,可以解决头文件的相互包含;#import<>用来包含系统的头文件,#import””用来包含用户头文件。
  2.属性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作用,在那种情况下用?
  答:
  1). readwrite 是可读可写特性;需要生成getter方法和setter方法时
  2). readonly 是只读特性 只会生成getter方法 不会生成setter方法 ;不希望属性在类外改变
  3). assign 是赋值特性,setter方法将传入参数赋值给实例变量;仅设置变量时;
  4). retain 表示持有特性,setter方法将传入参数先保留,再赋值,传入参数的retaincount会+1;
  5). copy 表示赋值特性,setter方法将传入对象复制一份;需要完全一份新的变量时。
  6).nonatomic 非原子操作,决定编译器生成的setter getter是否是原子操作,atomic表示多线程安全,一般使用nonatomic
  3.id 声明的对象有什么特性?
  答:Id 声明的对象具有运行时的特性,即可以指向任意类型的objcetive-c的对象;
  4.如何对iOS设备进行性能测试?
  答: Profile-> Instruments ->Time Profiler更多内容,咨询南京万和iOS开发培训。
  5.浅复制和深复制的区别?
  答:浅层复制:只复制指向对象的指针,而不复制引用对象本身。
  深层复制:复制引用对象本身。
  意思就是说我有个A对象,复制一份后得到A_copy对象后,对于浅复制来说,A和A_copy指向的是同一个内存资源,复制的只不过是是一个指针,对象本身资源
  还是只有一份,那如果我们对A_copy执行了修改操作,那么发现A引用的对象同样被修改,这其实违背了我们复制拷贝的一个思想。深复制就好理解了,内存中存在了
  两份独立对象本身。
  用网上一哥们通俗的话将就是:
  浅复制好比你和你的影子,你完蛋,你的影子也完蛋
  深复制好比你和你的克隆人,你完蛋,你的克隆人还活着。
  6.类别的作用?继承和类别在实现中有何区别?
  答:category 可以在不获悉,不改变原来代码的情况下往里面添加新的方法,只能添加,不能删除修改,并且如果类别和原来类中的方法产生名称冲突,则类别将覆盖原来的方法,因为类别具有更高的优先级。有疑惑?咨询南京万和iOS开发培训。
  类别主要有3个作用:
  1).将类的实现分散到多个不同文件或多个不同框架中。
  2).创建对私有方法的前向引用。
  3).向对象添加非正式协议。
  继承可以增加,修改或者删除方法,并且可以增加属性。
  7.类别和类扩展的区别。
  答:category和extensions的不同在于 后者可以添加属性。另外后者添加的方法是必须要实现的。
  extensions可以认为是一个私有的Category。
  8.oc中可修改和不可以修改类型。
  答:可修改不可修改的集合类。这个我个人简单理解就是可动态添加修改和不可动态添加修改一样。
  比如NSArray和NSMutableArray。前者在初始化后的内存控件就是固定不可变的,后者可以添加等,可以动态申请新的内存空间。
  面试前看看面试题虽然能助你一臂之力,但是最重要的还是平时要扎扎实实的提升自己的技术能力。南京万和iOS培训祝大家都能够找到一个好的工作,对得起自己的努力。

江苏万和IT教育 发表于 2016-7-21 11:55:35

想要学习iOS开发的小伙伴,可以进入官网了解:http://www.wanho.net/
现在暑假还有学IT技术,送旅游的活动。想要学IT的小伙伴,走起来~{:6_290:}{:6_290:}{:6_290:}
页: [1]
查看完整版本: iOS开发面试,不得不看的高频面试题 南京iOS培训分享