`
shlei
  • 浏览: 287756 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

上级向的十个iOS面试问题

    博客分类:
  • iOS
阅读更多

不管对于招聘和应聘来说,面试都是很重要的一个环节,特别对于开发者来说,面试中的技术问题环节不仅是企业对应聘者技能和积累的考察,也是一个开发者自我检验的好机会。对于iOS和Mac开发来说,因为本事还算比较新,企业对于这方面的开发者需求也比较大,所以面试时的要求可能并不是很高,一般能知道一些Cocoa和OC的基本知识也就认为可以了。但是对于一个希望拥有技术力基础的企业的iOS或者Mac开发来说,两到三个顶尖的熟练技术人员,带领一些还较为初级的开发者,共同完成项目应该是比较常见的构成。
Cocoa特别是CocoaTouch的开发,上手可以说十分容易,但是背后隐藏的细节和原理却很丰富。一方面对于基础不够熟练和清晰(比如从一个AppDelegate开始用代码构建ViewController,或者清晰地说明栈和堆之类的概念),另一方面对于更进阶的开发知之甚少(比如多线程、网络异步处理或者Core开头的各种框架等等)。这些内容十分重要,但是可能现在一般的iOS开发者或多或少都在这些问题上存在薄弱。在这里我整理了一份面向于较高层级的iOS开发者的面试题目的问题清单,列出了十个应聘Leader级别的高级Cocoa/CocoaTouch开发工程师所应该掌握和理解的技术。这份列表没有提供标准答案,因为这些问题本身就没有标准答案。随每个人对这些内容的认识的不同和理解的差异,可以有不一样的答案。但是最基本地,如果面对的是一名资深的Cocoa开发者,至少期望能得到的答案都是“接触过”,并且能结合自己的经验说个七七八八,达到互相能明白意图和方法的地步。能够在其中两三个领域有不错的见解和具体的阐述的话,那是更好。这种对于知识覆盖面和深度的考察很能真实反映出开发者的技术水平。如果清单里的很大部分内容都是完全没接触过和没听过的话,那可能距离资深Cocoa开发这样一个阶段还尚有距离了。
那么,面试开始。


1.你使用过Objective-C的运行时编程(Runtime Programming)么?如果使用过,你用它做了什么?你还能记得你所使用的相关的头文件或者某些方法的名称吗?

2.你实现过多线程的Core Data么?NSPersistentStoreCoordinator,NSManagedObjectContext和NSManagedObject中的哪些需要在线程中创建或者传递?你是用什么样的策略来实现的?

3.Core开头的系列的内容。是否使用过CoreAnimation和CoreGraphics。UI框架和CA,CG框架的联系是什么?分别用CA和CG做过些什么动画或者图像上的内容。(有需要的话还可以涉及Quartz的一些内容)

4.是否使用过CoreText或者CoreImage等?如果使用过,请谈谈你使用CoreText或者CoreImage的体验。

5.NSNotification和KVO的区别和用法是什么?什么时候应该使用通知,什么时候应该使用KVO,它们的实现上有什么区别吗?如果用protocol和delegate(或者delegate的Array)来实现类似的功能可能吗?如果可能,会有什么潜在的问题?如果不能,为什么?(虽然protocol和delegate这种东西面试已经面烂了…)

6.你用过NSOperationQueue么?如果用过或者了解的话,你为什么要使用NSOperationQueue,实现了什么?请描述它和GCD的区别和类似的地方(提示:可以从两者的实现机制和适用范围来描述)。

7.既然提到GCD,那么问一下在使用GCD以及block时要注意些什么?它们两是一回事儿么?block在ARC中和传统的MRC中的行为和用法有没有什么区别,需要注意些什么?

8.您是否做过异步的网络处理和通讯方面的工作?如果有,能具体介绍一些实现策略么?

9.对于Objective-C,你认为它最大的优点和最大的不足是什么?对于不足之处,现在有没有可用的方法绕过这些不足来实现需求。如果可以的话,你有没有考虑或者实践过重新实现OC的一些功能,如果有,具体会如何做?

10.你实现过一个框架或者库以供别人使用么?如果有,请谈一谈构建框架或者库时候的经验;如果没有,请设想和设计框架的public的API,并指出大概需要如何做、需要注意一些什么方面,来使别人容易地使用你的框架。


以上10个问题对于初级或者刚接触iOS的开发者来说,肯定是过于难了。想要答出全部问题,可能需要至少两到三年的Cocoa/CocoaTouch开发经验。而如果想要有所见地的回答,可能需要更长的时间和经验。这些问题对于技术的积累会是一个很好的考察,因为如果没有对这些问题中涉及的内容有过实际使用和体会的话,是很难较完整和全面回答这些问题的。同时,因为这些问题并不像ABCD的客观题有标准答案,表现的是应聘者的理解,所以提问者也必须具备必要的材料或者知识,以应对可能的讨论。
在为团队寻求高级别的开发工程师或者Leader类的职位时,这些问题的回答会是对应聘者技术深度和广度的一个有效的考察。同样地,如果你的团队在Cocoa/CocoaTouch上比较偏重,但是技术团队的No.1的工程师却不能很好地回答这些问题的话,可能也会是需要检讨技术层的一个信号。


From http://onevcat.com/2013/04/ios-interview/
分享到:
评论

相关推荐

    2018最新iOS面试题全集

    总之,这份2018年的面试题全集应覆盖了iOS开发的多个层面,既有基础理论也有实践经验,对于准备面试的iOS开发者来说,是一份极具价值的学习资料。通过深入学习和理解这些知识点,不仅可以提升面试成功率,也能在实际...

    iOS面试资源(阿里 腾讯等)打包

    在iOS开发领域,面试是求职者展示技能和经验的关键环节,尤其对于想要进入阿里巴巴、腾讯等顶级互联网公司的开发者来说,准备充分至关重要。本资源包包含了针对iOS面试的一些核心知识点,旨在帮助开发者提升面试表现...

    精选最新iOS面试题全面解析iOS开发精选面试题+答案题集

    阿里字节IOS面试题问题及答案 大厂常问IOS面试题 精选最新iOS面试题全面解析 iOS开发精选面试题+答案题集 阿里字节IOS面试题问题及答案 大厂常问IOS面试题 精选最新iOS面试题全面解析 iOS开发精选面试题+答案题集 ...

    2019iOS面试题大全

    《2019iOS面试题大全》是针对iOS开发者准备的一份面试资料,其中收集了超过100道的iOS面试题目,这些题目覆盖了面试时可能涉及的所有重要知识点。以下将对这些知识点进行详细说明: 1. iOS基础知识点 iOS开发者...

    2018秋招iOS面试总结

    这个时期的面试不仅反映了当时的iOS技术趋势,也为后来的求职者提供了宝贵的参考经验。以下是对2018年秋招iOS面试中常见知识点的详尽解析: 1. **Objective-C与Swift基础**: - Objective-C:面试中常问的基础知识...

    2018iOS面试题汇总

    ### 2018 iOS面试题汇总解析 #### 一、设计模式的理解及常见类型 设计模式是指在软件开发过程中,对于特定问题的一种普遍适用的解决方案。它代表着开发者们长期以来积累的经验教训,可以帮助我们更好地组织代码,...

    iOS面试题(阿里)

    根据提供的信息,我们可以总结出这份文档是关于iOS面试题的一部分,特别强调了与阿里巴巴相关的面试题目。虽然原文中包含大量非可读字符,但通过整理和解析,我们能够提炼出以下关键知识点: ### dSYM 文件 1. **...

    iOS面试宝典

    几十万字的iOS面试宝典,求职加薪必备利器!! 几十万字的面试总结,都是长期积累下来的宝贵经验,非常之珍贵, 有了这套宝典,iOS开发者在求职的道路上将会一路披荆斩棘,攻占王城! 包括: (1)传智播客-iOS面试...

    iOS面试知识宝典无水印版.pdf(含oc和swift知识)

    iOS面试知识宝典无水印版.pdf是一本专注于iOS开发相关面试知识点的书籍,覆盖了Objective-C和Swift两种主流的iOS开发语言。这本书适合准备参加iOS开发职位面试的求职者,尤其是那些希望能够全面复习基础知识的应聘者...

    2022年最新iOS面试题附答案.docx

    iOS 面试题附答案 本文主要讲解 iOS 面试题的相关知识点,包括类和结构体的区别、GCD 的概念和使用等。 类和结构体的区别 在 Swift 中,类是引用类型,结构体是值类型。值类型在传递和赋值时将进行复制,而引用...

    研发中心Java前端安卓iOS经典面试问题及面试流程

    【研发中心Java前端安卓iOS经典面试问题及面试流程】 面试流程主要分为三个环节:自我介绍、面试官提问和应聘者提问。整个过程旨在全面评估应聘者的专业技能、项目管理能力、沟通协作水平、职业素养和自我提升意识...

    iOS 面试题整理

    掌握这些知识点对于iOS开发者来说至关重要,能够帮助他们在面试中展现出扎实的技术基础和解决问题的能力。在实际项目中,这些技术也常用于优化代码结构和提高代码复用性,提升应用的性能和用户体验。

    IOS面试宝典 最新

    【iOS面试宝典——最新版】是一份集大成的面试指南,专为那些准备投身或已经在iOS开发领域摸爬滚打的工程师们量身打造。这份资料包含了开发者在面试过程中可能遇到的各种问题,旨在帮助求职者提升技能,增强自信心,...

    iOS面试问题精选下载

    iOS面试问题精选下载

    《iOS程序员面试笔试宝典》.pdf

    在书中,作者分享了自己在iOS领域多年积累的知识和经验,涵盖了从基础到高级的各种知识点和面试中常见的问题类型。书中不仅注重理论知识的梳理,还提供了大量实战题目,帮助读者巩固学习成果,提高实际编码能力。 ...

    ios 面试题目及答案

    标题 "iOS 面试题目及答案" 指出了文件内容主要围绕iOS开发相关的面试题目和答案展开,覆盖了iOS开发中的一些核心概念和技术点。描述部分说明这些面试题目非常全面,涉及了Objective-C、Cocoa Touch以及Xcode的使用...

    iOS面试题及答案

    iOS 面试题及答案 本文总结了 iOS 面试题及答案,涵盖了 OC 语言的基本特点、#import 与 @class 的区别、类目优缺点、内存管理的基本原则、ARC 技术、垃圾回收机制、深浅复制、堆栈区差别、用户自定义对象的拷贝、...

    iOS面试题汇总

    这个文档可能涵盖职业规划、团队协作、项目管理、沟通技巧、问题解决能力等非技术面试问题。面试官可能会询问你的工作经验、团队合作中的角色、如何处理冲突、项目延误的解决方案以及如何持续自我提升等方面的问题...

    iOS面试题

    ### iOS面试题详解 #### 1. UIView与CALayer的区别 - **定义与层次:**UIView和CALayer作为iOS开发中极为重要的两类视图层组件,它们分别处于不同的抽象层次。UIView是UIKit框架中用于构建界面的核心类,而CALayer...

    整集iOS面试资料

    这份资料整理了近年来iOS面试中常出现的问题,对于准备参加iOS开发职位面试的人来说非常有用。 ### 目录概述 1. **Unix基础** - Unix是iOS开发中常用的底层操作系统之一。 - 学习Unix基础知识对于理解iOS系统...

Global site tag (gtag.js) - Google Analytics