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


【南京iOS开发培训分享】你能用到的iOS面试题(一)

2016-05-19 11:14

  关于iOS开发面试,不管对于招聘和应聘来说,面试都是很重要的一个环节,特别对于开发者来说,面试中的技术问题环节不仅是企业对应聘者技能和积累的考察,也是一个开发者自我检验的好机会。本文南京万和iOS开发培训和大家分享的是你能用到的iOS面试题,希望能对大家有一些帮助。


  1.如何访问并修改一个类的私有属性?


  有两种方法可以访问私有属性,一种是通过KVC获取,一种是通过runtime访问并修改私有属性


  创建一个Father类,声明一个私有属性name,并重写description打印name的值,在另外一个类中通过runtime来获取并修改Father中的属性。



  2.iOS Extension 是什么?能列举几个常用的 Extension 么?


  ◎Extension是扩展,没有分类名字,是一种特殊的分类,类扩展可以扩展属性,成员变量和方法


  ◎常用的扩展是在.m文件中。 有疑惑?咨询南京万和iOS开发培训


  3.如何把一个包含自定义对象的数组序列化到磁盘?


  自定义对象只需要实现NSCoding协议即可



  4.Apple Pay 是什么?它的大概工作流程是怎样的?



  5.iOS 的沙盒目录结构是怎样的? App Bundle 里面都有什么?


  ⑴沙盒结构


  ●Application:存放程序源文件,上架前经过数字签名,上架后不可修改


  ●Documents:常用目录,iCloud备份目录,存放数据,这里不能存缓存文件,否则上架不被通过


  ●Library


    ◎Caches:存放体积大又不需要备份的数据,SDWebImage缓存路径就是这个


    ◎Preference:设置目录,iCloud会备份设置信息


  ●tmp:存放临时文件,不会被备份,而且这个文件下的数据有可能随时被清除的可能


  ⑵App Bundle 里面有什么


  ●Info.plist:此文件包含了应用程序的配置信息.系统依赖此文件以获取应用程序的相关信息


  ●可执行文件:此文件包含应用程序的入口和通过静态连接到应用程序target的代码


  ●资源文件:图片,声音文件一类的


  ●其他:可以嵌入定制的数据资源


  6.iOS 的签名机制大概是怎样的?


  假设,我们有一个APP需要发布,为了防止中途篡改APP内容,保证APP的完整性,以及APP是由指定的私钥发的。首先,先将APP内容通过摘要算法,得到摘要,再用私钥对摘要进行加密得到密文,将源文本、密文、和私钥对应的公钥一并发布即可。那么如何验证呢?


  验证方首先查看公钥是否是私钥方的,然后用公钥对密文进行解密得到摘要,将APP用同样的摘要算法得到摘要,两个摘要进行比对,如果相等那么一切正常。这个过程只要有一步出问题就视为无效。  更多详情,咨询南京万和iOS开发培训


  7.iOS 7的多任务添加了哪两个新的 API? 各自的使用场景是什么?


  ◎后台获取(Background Fetch):后台获取使用场景是用户打开应用之前就使app有机会执行代码来获取数据,刷新UI。这样在用户打开应用的时候,最新的内容将已然呈现在用户眼前,而省去了所有的加载过程。


  ◎推送唤醒(Remote Notifications):使用场景是使设备在接收到远端推送后让系统唤醒设备和我们的后台应用,并先执行一段代码来准备数据和UI,然后再提示用户有推送。这时用户如果解锁设备进入应用后将不会再有任何加载过程,新的内容将直接得到呈现。


  8.+load 和 +initialize 的区别是什么?


  ●+(void)load;


  ◎当类对象被引入项目时, runtime 会向每一个类对象发送 load 消息


  load 方法会在每一个类甚至分类被引入时仅调用一次,调用的顺序:父类优先于子类, 子类优先于分类


  ◎load 方法不会被类自动继承


  ●+(void)initialize;


  ◎也是在第一次使用这个类的时候会调用这个方法


  9.NSOperation 相比于 GCD 有哪些优势?


  ◎提供了在 GCD 中不那么容易复制的有用特性。


  ◎可以很方便的取消一个NSOperation的执行


  ◎可以更容易的添加任务的依赖关系


  ◎提供了任务的状态:isExecuteing, isFinished.


  10.strong / weak / unsafe_unretained 的区别?


  ◎weak只能修饰OC对象,使用weak不会使计数器加1,对象销毁时修饰的对象会指向nil


  ◎strong等价与retain,能使计数器加1,且不能用来修饰数据类型


  ◎unsafe_unretained等价与assign,可以用来修饰数据类型和OC对象,但是不会使计数器加1,且对象销毁时也不会将对象指向nil,容易造成野指针错误。   更多详情,咨询南京万和iOS开发培训


  11.如何为 Class 定义一个对外只读对内可读写的属性?


  在头文件中将属性定义为readonly,在.m文件中将属性重新定义为readwrite


  12.Objective-C 中,meta-class 指的是什么?


  meta-class 是 Class 对象的类,为这个Class类存储类方法,当一个类发送消息时,就去那个类对应的meta-class中查找那个消息,每个Class都有不同的meta-class,所有的meta-class都使用基类的meta-class(假如类继承NSObject,那么他所对应的meta-class也是NSObject)作为他们的类。


  以上是南京万和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加入