美文网首页iOS面试题workiOS开发专题
2017年5月iOS招人心得(附面试题)

2017年5月iOS招人心得(附面试题)

作者: J_Knight_ | 来源:发表于2017-06-08 13:24 被阅读26940次

    2017.06.12更新:
    要答案的朋友比我想象的要多,这些题的答案我并没有特意花时间整理好,因为给出答案并不在我的原计划之内,但是还请各位理解一下我个人的时间安排。
    本文中的面试题在网上都比较容易搜的到,而且有些题目来自于ChenYilong/iOSInterviewQuestions

    如果在时间和排期允许的情况下我一定会告知大家出一份答案的。谢谢理解!


    配图来自:https://pixabay.com

    就在上个月中旬,技术老大让我招两个1-2年的iOS开发,把简历的筛选和第一轮技术面试的任务交给了我。

    从筛选第一份简历,准备面试题,到成功招到两个人一共花了两个星期多一点,总体来说还是比较顺利的。两位通过者都比较稳重踏实,而且对技术也比较有追求。这也可能和我筛选简历比较谨慎有关系,这次筛选简历所花费的精力是不比面试花费的少的。

    虽然时间跨度不是很长,但是毕竟是第一次,所以有些感触,想总结出来分享给大家。这篇总结分为两个部分:

    • 第一部分是我当时准备的面试题
    • 第二部分是我的心得

    我重点在本文的第二部分说一下这次面试别人的心得体会。而关于第一部分的面试题,文中不提供答案(因为不是本文的重点),有想讨论的欢迎在评论区留言。

    第一部分:面试题


    注意,下面这些题只是我准备的题库。在实际面试的时候我会根据面试者的水平抽出相应的题目来出的。

    技术

    基础

    1. 为什么说Objective-C是一门动态的语言?
    2. 讲一下MVC和MVVM,MVP?
    3. 为什么代理要用weak?代理的delegate和dataSource有什么区别?block和代理的区别?
    4. 属性的实质是什么?包括哪几个部分?属性默认的关键字都有哪些?@dynamic关键字和@synthesize关键字是用来做什么的?
    5. 属性的默认关键字是什么?
    6. NSString为什么要用copy关键字,如果用strong会有什么问题?(注意:这里没有说用strong就一定不行。使用copy和strong是看情况而定的)
    7. 如何令自己所写的对象具有拷贝功能?
    8. 可变集合类 和 不可变集合类的 copy 和 mutablecopy有什么区别?如果是集合是内容复制的话,集合里面的元素也是内容复制么?
    9. 为什么IBOutlet修饰的UIView也适用weak关键字?
    10. nonatomic和atomic的区别?atomic是绝对的线程安全么?为什么?如果不是,那应该如何实现?
    11. UICollectionView自定义layout如何实现?
    12. 用StoryBoard开发界面有什么弊端?如何避免?
    13. 进程和线程的区别?同步异步的区别?并行和并发的区别?
    14. 线程间通信?
    15. GCD的一些常用的函数?(group,barrier,信号量,线程同步)
    16. 如何使用队列来避免资源抢夺?
    17. 数据持久化的几个方案(fmdb用没用过)
    18. 说一下AppDelegate的几个方法?从后台到前台调用了哪些方法?第一次启动调用了哪些方法?从前台到后台调用了哪些方法?
    19. NSCache优于NSDictionary的几点?
    20. 知不知道Designated Initializer?使用它的时候有什么需要注意的问题?
    21. 实现description方法能取到什么效果?
    22. objc使用什么机制管理对象内存?

    中级

    Block

    1. block的实质是什么?一共有几种block?都是什么情况下生成的?
    2. 为什么在默认情况下无法修改被block捕获的变量? __block都做了什么?
    3. 模拟一下循环引用的一个情况?block实现界面反向传值如何实现?

    Runtime

    1. objc在向一个对象发送消息时,发生了什么?
    2. 什么时候会报unrecognized selector错误?iOS有哪些机制来避免走到这一步?
    3. 能否向编译后得到的类中增加实例变量?能否向运行时创建的类中添加实例变量?为什么?
    4. runtime如何实现weak变量的自动置nil?
    5. 给类添加一个属性后,在类结构体里哪些元素会发生变化?

    RunLoop

    1. runloop是来做什么的?runloop和线程有什么关系?主线程默认开启了runloop么?子线程呢?
    2. runloop的mode是用来做什么的?有几种mode?
    3. 为什么把NSTimer对象以NSDefaultRunLoopMode(kCFRunLoopDefaultMode)添加到主运行循环以后,滑动scrollview的时候NSTimer却不动了?
    4. 苹果是如何实现Autorelease Pool的?

    类结构

    1. isa指针?(对象的isa,类对象的isa,元类的isa都要说)
    2. 类方法和实例方法有什么区别?
    3. 介绍一下分类,能用分类做什么?内部是如何实现的?与该类原有方法的名称相同的时候,为什么原有方法会失效?
    4. 运行时能增加成员变量么?能增加属性么?如果能,如何增加?如果不能,为什么?
    5. objc中向一个nil对象发送消息将会发生什么?(返回值是对象,是标量,结构体)

    高级

    1. UITableview的优化方法(缓存高度,异步绘制,减少层级,hide,避免离屏渲染)
    2. 有没有用过运行时,用它都能做什么?(交换方法,创建类,给新创建的类增加方法,改变isa指针)
    3. 看过哪些第三方框架的源码?都是如何实现的?(如果没有,问一下多图下载的设计)
    4. SDWebImage的缓存策略?
    5. AFN为什么添加一条常驻线程?
    6. KVO的使用?实现原理?(为什么要创建子类来实现)
    7. KVC的使用?实现原理?(KVC拿到key以后,是如何赋值的?知不知道集合操作符,能不能访问私有属性,能不能直接访问_ivar)

    项目

    1. 有已经上线的项目么?
    2. 项目里哪个部分是你完成的?(找一个亮点问一下如何实现的)
    3. 开发过程中遇到过什么困难,是如何解决的?

    学习

    1. 遇到一个问题完全不能理解的时候,是如何帮助自己理解的?举个例子?
    2. 有看书的习惯么?最近看的一本是什么书?有什么心得?
    3. 有没有使用一些笔记软件?会在多平台同步以及多渠道采集么?(如果没有,问一下是如何复习知识的)
    4. 有没有使用清单类,日历类的软件?(如果没有,问一下是如何安排,计划任务的)
    5. 平常看博客么?有没有自己写过?(如果写,有哪些收获?如果没有写,问一下不写的原因)

    有关技术类的问题可以在评论区留言,我重点说一下这轮面试的心得和体会。

    第二部分:心得


    面试者千万不要答非所问

    如果让我选一个让面试官觉得印象减分的点,答非所问应该是首当其冲的。

    面试者一定要知道面试官问的点是什么。

    • 如果在知道面试官问的点,但是自己却不知道答案的时候,可以提出思路,思考过程。其实有几次面试者在我的引导下很容易就把答案说出来了,认清问题的点是解决问题的一半。
    • 如果没有理解好面试官问的问题,一定要事先和面试官确认好。

    其实这也属于沟通能力的一点:如果不能保证和对方沟通内容的一致性,自己弄个filter把对方的话都曲解了,以后合作的时候又怎能保证沟通好呢?

    面试者一定不要来得太早

    这里说的来得太早,是来得太早并告知面试官自己已经来了。

    因为在约定好的面试时间之前,往往面试官还有别的事情在做,如果他知道你来的很早,就可能会扰乱他的计划。有一位面试者早来了1个小时,结果把我们的面试计划打乱了,而且正好是我的第一次面试,所以真的是有点措手不及。

    求职者和公司定下来的时间属于一个约定,约定是要遵守的。而且遵守约定同样也是对对方的尊重。如果入职之前都没能把握好,入职之后又如何能保证把握好呢?

    实践与理论的脱节,让人很不安

    能做出来项目,但是基础知识很薄弱

    几乎每位面试者都能给我展示他做的一些app,虽然没有很难的功能,但也都算是有板有眼。可让我比较意外的是,虽然能做出有模有样的app,但当我问到很多基础的问题的时候却答不上来,比如属性和成员变量的区别,属性的默认关键字,Designated Initializer的概念等等。。

    这不禁让我怀疑他们的代码的稳定性,更怀疑他们治学,做技术的态度。

    虽说技术活需要实践的磨练,但和理论脱节的技术是钻不深的。可能有人会说我的面试题过于理论,实际中用不到。但有些时候,在实际开发中遇到的一些问题往往就是因为一些很基本的东西没有弄清导致的,相信你我都深有体会。

    而且,我们都知道技术的提升是阶梯式的。什么是阶梯式的呢?就是可能我们会有比较长的时间才会有一个突破。但这个突破来的有多快,提升的有多高,是跟平时每个细小知识点的掌握程度是分不开的。

    因为知识也是有复利效应的,准确地掌握越多的知识点,在以后的学习过程中,这些知识点相互之间想成的积极作用会越来越大:对新知识的理解更快,对问题的定位会更准,解决问题的方法也会越多。相反,如果你每个问题都得过且过,这些结果的复合作用就会导致你今后很难会有所突破了。

    真的可能被简历骗到

    上家的薪资很高,但是实际能力很不符

    有一位面试者在简历里号称上一个工作拿了15k,但当我问到NSString属性使用strong还是copy作为关键字的时候他说是strong,而且用copy和strong的区别也不清楚,甚至连delegate都拿不准使用strong还是weak,我就有些奇怪了。

    看技术博客和技术书籍的人还是很少的

    只依赖于公司里的项目应该是不够的,毕竟不是每个公司里都有上乘的代码和技术

    面试了大概20个人,但是真正有看过技术博客和技术书籍的真的不多,更别提Github了。不过其中一位面试通过者是有github账号的,并且有几个小项目,印象非常好,加了不少分。

    我相信在这一行的未来,简历里面github账号和博客绝对会越来越受重视:

    • 一方面简历真的是应接不暇,而且同时千篇一律,很难找出亮点。
    • 另一方面,如果可以把自己的代码和成长展示给招聘公司,就会使得自己的能力在公司面前变得更加纯粹和透明,更有助于找到适合你自己的公司。

    以上就是我上个月的面试心得,希望大家多交流,有说的不对的地方还请多指正。

    本篇已经同步到个人博客:传送门


    本文已在版权印备案,如需转载请访问版权印。48422928

    获取授权

    相关文章

      网友评论

      • 张云龙:最高端的面试官看重的是面试者的基本素质和修养,基本素质包含:聪明,这样才有能力学习新知识;好学,这样才有动力学习新知识。修养包括:礼貌,这样才能和平和同事相处做好工作;踏实,这样才不会好高骛远,毛毛躁躁;有理想,这样才不会因为一点蝇头小利就跳槽。当然评判这些的前提是这个人的基本功是及格的。以上这些面试题重要吗?当然重要,但是不是评判一个人才的标准,用这些面试题考察的基础,说白了,这些都是可以准备的,答得好的工作可不一定做得好。每个人每家公司的面试标准就在一定程度上决定了这家公司多能达到的高度。
      • Mhhhhhhy:18年了 Swift面试题有木有一份呢 赶脚Swift越来越重要了
        J_Knight_:@赫萌 明年这个时候应该是需求比较大了
        J_Knight_:@赫萌 暂时没有深入学习swift呢~
      • 文兴:这份题目不错
      • catcherdream:初级从17-26有5个说不全的。中级runtime4.5不会。高级567不会。看来还是知识面不光还的在看看。
        J_Knight_:@catcherdream 广度和深度都要抓一下,如果是面高级的话,尤其是深度
      • ziyouzhe4:您好, https://knightsj.github.io/2018/01/23/YYCache%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ 这篇文章中说道 : 当type为
        YYKVStorageTypeFile和YYKVStorageTypeMixed的时候的缓存实现都是一致的:都是讲data存在文件里,将元数据放在数据库里面 我看源码 感觉只是file 或者 数据库, 没有看到混合类型存储的, 希望能指出具体位置,谢谢:pray:
        ziyouzhe4:@J_Knight_ 嗯嗯,谢谢回复
        J_Knight_:@majianjie 我也没有看到混合类型的~
      • ziyouzhe4:博主你好, 看了你的文章受益很大, 看了这个 https://knightsj.github.io/2018/01/23/YYCache%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ 文章后 文中发现有一处 文字上的错误: YYMemoryCache是按照缓存数量,缓存开销,缓存时间的顺序来自动清空缓存的. 这里是不是应该写成 : YYMemoryCache是按照 缓存开销, 缓存数量,缓存时间的顺序来自动清空缓存的 ? 望指点:+1:
        J_Knight_:@majianjie 嗯嗯 是的,我在代码注释里面 是和你说的这个顺序一致。上面我确实写错了,我修改一下~~ 谢谢啦~
      • 存在即是美:细节决定成败,基础决定高度。基础算法和运行原理是不变的,这些是开发人员必须掌握的,说实话,做过很多个APP并不能代表个人能力。感谢你,这篇文章给我带来了很大的启发。
      • 相遇相识相恋相濡以末:分类貌似不是覆盖原有方法的实现吧
        J_Knight_:@相遇相识相恋相濡以末 嗯嗯 已更新 谢谢提醒啦~
        相遇相识相恋相濡以末:@J_Knight_ 我就是这个意思:smile:
        J_Knight_:@相遇相识相恋相濡以末 分类的方法会插入到在原有方法的前面。所以如果和原有方法一致,就会首先查找到分类里的这个方法。我说的“覆盖”严格来讲确实不准确。
      • Medivh:如今1-2年的iOS开发者都要懂那么多了嘛,果然夕阳行业。
        J_Knight_:@Medivh 首先,这些并不都问的,要看面试者的水平。而且,并不是夕阳行业吧,只是行业标准提高了,变了正常了而已。是否是夕阳行业应该看行业的市场吧,供大于求并不代表市场就快不行了。
      • 渣渣程序猿爱次次大餐:666:+1:
        J_Knight_:@渣渣程序猿爱次次大餐 多提点多提点
        J_Knight_:@渣渣程序猿爱次次大餐 这个名字原来是你:joy:
      • 好站6:答案发布出来了吗@J_Knight_
      • 东东隆东抢:在YouTube也看过老外的面试题,感觉侧重点还是差蛮多的
        J_Knight_:@东东隆东抢 真挺不错的 谢谢哈~
        东东隆东抢:@J_Knight_ 我回去找找视频链接。最近看到一份老外整理的面试题,我已经转贴在我的简书上。http://www.jianshu.com/p/200a48ff139b
        J_Knight_:@东东隆东抢 可以分享一下地址嘛?:smile:
      • e19fc75f0315:就这些问题应该是找初中级?
        J_Knight_:@银东 不是全都问的 看情况问的
      • 123打点滴:面试理论是一个方面,但很有限,我会选择让他开发个功能,然后观察他的代码。
        J_Knight_:@东门兜 是的 这个方案很实际有效
      • 就是一个春天的花朵:挺好的,兄台还招人吗:joy:
        J_Knight_:@春风沉醉的晚上_ 现在不招了啊 :smile:
      • HEALTHYbaby:能提供下答案吗?感谢!
      • 奋斗的蝼蚁:想知道
        1、能否向编译后得到的类中增加实例变量?能否向运行时创建的类中添加实例变量?为什么

        2、运行时能增加成员变量么?能增加属性么?如果能,如何增加?如果不能,为什么?
        这两个问题 有啥区别,还有 能否告知你心中的答案
        J_Knight_:@奋斗的蝼蚁 先问第一个,如果回答错了,就不问了。如果回答对了,就问是否能增加属性
      • cc412:哈哈哈哈,有些题目我招人时候也用过,但是好多人做业务做得都不注重基础了。想找一个基础扎实又能直接上手干项目的还是太难。
      • 无风起个浪:打扰了,我是一个假iOS程序员,很多基础题都不会,每次码代码都觉得是在平地起高楼:joy:
      • Albus111:你的高级题我都能答出来,初级题只能答出40%。。。
      • riyihu:你是蚊子吗?我是胡汉三
        J_Knight_:@花生姓胡 哦哦:smile:
        riyihu:@J_Knight_ 额,认错人了。我同学也是做ios的转发过你文章
        J_Knight_:@花生姓胡 什么梗:sweat_smile:
      • EurekaFlutter:初级的IOS:什么都需要摸索探险创新创造制造。
        中级的IOS:什么都需要磨练打拼磨练打拼磨练。
        高级的IOS:什么都需要摸索探险创新创造制造。
        自己的心路历程,有相似之处的人或揣摩后可以理解的,可以敬你一杯薄酒。
        鬼影_ec3f:初级的IOS:觉得自己会的太少,有时间就看看别人的文章和代码,补充知识。
        中级的IOS:觉得自己牛逼哄哄,有时间就看看别人的文章和代码,找找槽点。
        高级的IOS:觉得自己会的太少,有时间就看看别人的文章和代码,补充知识。
      • 火之玉:楼主你好, 这是我总结的面试题目答案.
        http://www.jianshu.com/p/7d486b24dc21
        J_Knight_:@火之玉 嗯嗯 我看一下
      • 断片记忆:看了以后感觉能回答60%吧,还是偏教科书式了,很机械的面试题…
      • 蒂埃里:感觉为了避免失业之后找工作费劲,工作的时候也得抽空看看面试题,平时工作很少留意这些,一段时间不看真的就会忘记回答不上来
        J_Knight_:@蒂埃里 我个人觉得如果是经常忘记就说明还是没有理解。建议你下一次看的时候好好理解一下,也可以用demo来帮助理解。只要理解了,就不会忘了,而且还会用自己的话说出来。
      • 6号特工:我来报道。😀
        J_Knight_:@6号特工 欢迎呀
      • Bruce_XHG:感觉高级的还简单一些,这是什么情况:sweat:
      • 创意策划小明:没有很深的技术能做互联网产品策划吗
        J_Knight_:我个人认为不用太深,但是完全不懂肯定不行~
      • 轶匠:NSString用copy的原因:http://www.jianshu.com/p/1e1a6f9c26f8
        J_Knight_:写的很好~ 已点赞。
      • 才兄说:文章有些观点还是可以的,首先技术基础这个是前提,下面评论中扯蛋一堆,有些常识性的东西搞不清楚就是经验和基础的问题,这个应该不需要争论的,其次工作的态度和对技术的追求是优秀程序员必备的品质。
        J_Knight_:@天鬼 好的啊:smile:
        才兄说:@J_Knight 是的,英雄所见略同,有机会多多交流~
        J_Knight_:嗯嗯 跟我的想法很一致呀
      • 等这姑娘老在我心里:碰到做题的面试我就想走了,没有啥意思
        等这姑娘老在我心里:@J_Knight 那还行,主要是对那些一上来就发一堆题的公司没有什么好感,最主要的是问的问题在50K每月,实际只给你10K
        J_Knight_:@等这姑娘老在我心里 ?做题是什么意思? 我这个是题库,而且 面试的时候是口试
      • 海耐射手:有答案吗?
      • 黄花菜先生:delegate和dataSource有什么区别?这句话啥意思,没理解,能解释一下吗?
        J_Knight_:@CodeForFood 相对于参数和返回值的数据流向的考察,这道题的考察点在于面试者是否考虑过为什么同样是代理,两个代理的名称是不同的,有没有思考过区别。
        人话博客:@J_Knight_ 代理无非就是提供一套方法,方法无非就是有参数和返回值。 返回值表示从代理到委托的数据流向,而参数表示了委托者到代理的数据走向。
        这种题目太细节了。可能刚问我,我不会想到这一点。

        因为本来代理方法的传递可能是单向和双向的。
        J_Knight_:@不会凉的黄花菜 delegate和datasource都属于委托模式。但是二者的信息流方向是不同的。代理是从委托者走向代理。而数据源是从数据源到委托者。这个会在下一篇文章中详细讲解
      • Double丶K:这是你原创文章????CocoChina上看了个一模一样的http://www.cocoachina.com/programmer/20170609/19483.html,我感觉你可以维权,索要稿费:smiley:
        J_Knight_:@Double丶K 我有点震惊 :sweat:
        Double丶K:@J_Knight coco真是垃圾,不要个脸,哈哈
        J_Knight_:@Double丶K 嗯嗯 我已经联系他们了。哈哈 稿费就算了,能撤掉就行
      • 哎呦有bug:希望能够总结下答案,自学的过程由于求快而导致了现在的基础比较薄弱,心酸心酸
      • 流老湿:三分之二不会 然而我还是一直在开发
      • Mg明明就是你:NSString属性使用strong还是copy作为关键字的时候他却说是strong?
        用Strong也是有使用场景的,关键看应用场景,一般情况下用Copy。
      • hopestar90:作者您好,我其实很想知道为什么kvo的实现需要借助子类
      • TonyAng:个人感觉,现在iOS面试,对于基础知识的面试环节是可有可无的,着重点在于面试者的作品,从每一个功能模块实现上,来分析判断面试者的能力,这样才是最新iOS的面试。
        J_Knight_:@TonyAng 嗯嗯 你说的很好
      • Twenty_:做这些题的话可以用引擎搜索吗?
        J_Knight_:@Twenty_ ?面试现场应该不行啊
      • PGOne爱吃饺子:NSString为什么要用copy关键字,如果用strong会有什么问题? 楼主这一块可以具体说说么,我好像修饰String的时候用的都是Strong类型的
        PGOne爱吃饺子:@iutuyte 好的 谢谢啊
        73d90af49c95:@4140d18ee6fc 用copy 比较稳妥!不会出现问题,只不过在性能上有些消耗!strong 修饰的时候会在可变不可变的时候出现各种异常!我没有过深的去了解,经验之谈!
      • 谢谢生活:面试题问的很实际啊,有没有面试题答案分享下。感觉很多东西都似懂非懂的。
      • 满庭花醉三千客:个人觉得,比约定时间早来1个小时,表示应聘者确实看重贵公司。面试可能要面对各种突发情况,比如堵车、等不到公交之类的。应聘者去你的公司并不像你一样轻车熟路,不迟到很重要。个人看法,请多指教。
        满庭花醉三千客:@archerLj 早点去公司,也可以看看公司的企业文化和工作氛围嘛,在楼下等着总觉得有点奇怪。除非你太早了,公司都没开门。。。:joy:
        J_Knight_:@archerLj 嗯嗯 建议这样做
        忧郁的小码仔:我一般都是早到之后在楼下等一下,然后比约定时间提前几分钟再进去。:sob:
      • 949fe3c1db1e:遇到过一个公司,招过来的人是在阿里做分布式的,结果实际上让他做的就只是SSH网站
      • Python数据分析实战:最近在找工作,看你的面试很全面,能提供一份答案吗
      • a1634a52a033:想看答案 哭哭
      • LV大树:做了两年,很多也不会。
      • Autolying:关注你好久了,写的不错
        J_Knight_:@Autolying 谢谢哈~
      • CrazySteven:我比较关心招到人了么?现在iOS市场怎么样。
      • 三岁就很乖:求贴答案!!
      • doublej_yjj:10.“nonatomic和atomic的区别?atomic是绝对的线程安全么?为什么?如果不是,那应该如何实现?”这是个老题了吧?atomic的自旋锁现在来说在多个线程抢夺同资源的情况下是不是可以说相当不安全了?更别提绝对两个字。
      • 々七夜圣君:听君一席话
        J_Knight_:@々七夜圣君 :smile:
      • 追逐你的影子:看的我好慌 我可能是个假iOS开发
        83cc6d590693:独秀同志你坐下
      • 经天纬地:最近刚好准备找工作,本来觉得自己还OK ,毕竟做了3个项目了,现在看来很多基础的东西还是不够扎实,可能工作中有点依赖copy 了,理论部分当初学了,或者平时看了过后也很容易忘记。看来我可以先写个博客回答这里的面试题了,当做面试准备:smile:
      • iOS_渔翁:本来感觉自己技术还可以,看了你的面试题,感觉自己好渣渣
        J_Knight_:这些基础性的东西有必要夯实一下的~
      • 研匠:如果能通过5分钟网络查询到的问题,就不要问面试者了。ios、android很多开发细节,可能今年有用,明年可能就淘汰了,这些都不是问题的重点。重点在于面试者的思路活跃,算法实现,有没有达到适应水平。
        J_Knight_:第一个答案不是最重要的,而是看他的理解程度。再深问的话马上就会暴露出来 这个人的求知态度。就算思维活跃,不用在对的地方也就不算优势了
        hypercode:严重同意,有些公司瞎面,居然还有公司派HR面技术题的。。。这种公司一律PASS
        Mg明明就是你:666
        不能再同意更多
      • 整个夏天:NSString用copy还是strong,我没有用过copy。😆
      • BIOTONIC:最近也在找工作,刚好看到这份面试题,闲着没事自己整理了一份答案,需要看答案的可以移步http://www.jianshu.com/p/dfc4ca0fdf47,是我个人的理解,不保证完全正确,有些问题也不是很清楚,需要的可以去看看,有错误的地方欢迎指正。
        J_Knight_:@BIOTONIC 可以的。如果排版上更层次分明一些就更好了~
      • e44521c61a8a:大神有没有这些题目的答案呢?想看看。
      • 七秒记忆的鱼儿:能针对你的文章里面的面试题,发表一篇答案文章吗?也来检查一下自己基础知识掌握的情况
        J_Knight_:@七秒记忆的鱼儿 厉害了 先马上 等我的评论哈:smile:
        七秒记忆的鱼儿:@J_Knight 已将答案写出了,欢迎来指导 http://www.jianshu.com/p/f9eb6b315c08
        J_Knight_:嗯嗯 看看要答案的人多不多
      • glhmtech:求答案499729405@qq.com工作3年,有些题还不是很会
      • LGMMI:确实,技术再牛的人也是基于对底层基础知识的透彻理解。
        嗯,自己也要好好再捋一遍了。
        J_Knight_:是滴~
      • JessWang:StoryBoard开发界面有什么弊端? 这个问题是为了 拖拉派与代码派的较量吗. . .
        学习路上一个远行者:@Avenger_hell 个人感觉sb太不灵活了,有点坑,而且还熬性能
        JessWang:@J_Knight 对,在适合的地方,用合适的工具去完成自己的项目,这才是开发者应该做的
        J_Knight_:@Avenger_hell 但并没有说它只有弊端啊
      • 白夜追凶_key:虽然工作几年了 但是这些真的答不上来:disappointed_relieved::disappointed_relieved::disappointed_relieved:
      • gitKong:很好,啵一个:smile:
        J_Knight_:@gitKong 哈哈:smile:
      • 一纟钱真帅:大神给份答案吧,谢谢啦
        439407544@qq.com
      • 简晰333:@J_Knight
        J_Knight_:@白开水ln 都是积累下来的 比较散 看如果要的人很多的话会出一份
        简晰333:@J_Knight 同求,这篇文章参考答案;你可有整理好的吗
        J_Knight_:@白开水ln ??
      • 晨阳聊电影:我也是,我们公司最近再招iOS开发3到5年的,但是来的很多都不行,简历上写的不错,但是问起基础知识就答得差强人意了~打个广告,上海的iOS朋友们,做iOS的找工作的可以私信我~
      • 悟剑声:“实践与理论的脱节,让人很不安” 这一节不是很赞同。如果一个面试者展示了一些他的作品,那他一定可以。其一,他必须有主动需求;其二,他有整合框架的能力,同时担任主程和主美,难度不小于合作开发;其三,查找资料和解决问题的能力。其四,错了的基础题,不能说明基础不扎实,毕竟编译器不是他写的;他一定有他认为更重要的知识,你没有发掘到。如果他有逻辑的答错,那可以考虑没有get到他的理解的点。

        小王子sl:但是 中大型公司 都要求 你基础扎实 各种 理论都要精通
        小王子sl:只能说 我就是这类人吧 一直在创业公司 做独立开发 难免对技术的深入 存在偏差
      • Im程先生:第一题,OC并不是动态语言,公司还特意在分享会讨论了,和java一样,只是运行有动态语言特性,而不是动态语言
        sindri的小巢:@Im程先生 动态语言的概念来自于smalltalk,并不是说拥有动态语言特性就是动态语言或者不是
        学习路上一个远行者:@Im程先生 那动态语言和静态语言的区别标志是?我认为就是在编译阶段能否确认类型?你认为呢
      • Amuxiaomu:果然还是在简书中找到了出处,我想说有些东西比较常用 像String用Copy,已经就像是定律了,如果有个功能或者一个要求必须使用Strong的话,才能去了解,然而这种情况是比较少的,虽然这些东西看过很多遍但有时对其原理还是有点说不清楚....
      • 逆枫0:这面试题厉害了,有没有答案啊。方便我巩固巩固这些知识
      • Yokihr:在面试的时候,也问了面试者一些关键字的问题,其中问一个面试者,平常修饰UI控件用什么关键字,他告诉我用assign,然后问了几个简单地就不在继续问了,他说你问的这些都是基础,我还以为你会问runtime什么的呢。让我很无语。
        73d90af49c95:@Yokihr 我今年2月份面了一个写的三年工作经验,问了他系统常用的单例他说了一个UIUserDefaults!我。。。。。
        J_Knight_:我也有点吃惊了。。。 可以不用再问了
      • SuperBoy_Timmy:现在‘面试题’这三个字,对于iOS来说很火爆!⸔:joy:
      • 太阳当空照我要上学校:问下贵公司招测试么
        J_Knight_:暂时不招测试的~
      • 4b04926d3bb8:题目不错,但是我是觉得用初级,中级,高级三个来区分不大合理。应该是面试的顺序吧。
        一般都是先面理论基础,类似你的中级高级题。理论基础答出来了,可以出些类似你里面的高级题。 而且最好结合简历里的项目来问相应的题会更好点
        J_Knight_:@_至尊宝_f 这个随机的 看回答的程度会切换难度
      • 提莫酱T:NSString用Strong或copy看具体用处,它俩的内存地址都是一样的,因为我们声明一个属性字符串大部分是不希望它改变的所以大部分用了copy,用Strong也行。如果想把NSString变为NSMutableString是用Strong的用copy的话是进行了深拷贝实际还是NSString。
      • fangzhiyuan:写的挺不错的。值得借鉴。赞。
      • 路过你的全部:好陌生的感觉,求面试题答案,发一份吧
      • MISSGY_:看了这些感觉 初级的基本是越来越难找到工作了
      • 肖子浩92:确实,我觉得得面一下基础。不要说1,2年的,最近面了1周面了几个4.5年的,上面的题目就基础的我也问了几个,都没有搭出来。后面来了个7年ios的,吓得我都不知道怎么面了,问了下AOP,都答不上来。。。现在说实话,对技术有追求和热情的真的太少了。不过我也发现,其实基础薄弱,不代表实在能力不行.(或许这就是中国民工现象吧)!

        另外:作者你的题目感觉跟sunny的博客写的那些题目差不多,是借鉴的吗
        肖子浩92:@一一抛到银河 没有,AOP只是用来看功底和技术程度
        sindri的小巢:@肖子浩92 ……现在市场上造假依旧严重,目前基本靠推荐或者被邀请
        一一抛到银河:@肖子浩92 他简历写AOP了吗?
      • yahibo:我也求一份答案:smile:283577169@qq.com
      • 好尼桑:来份答案吧,如果可以的话,让我参考参考:smiley:
      • 择一城终老_蜗牛:嗯需要 来个面试题的理解答案了~~~发现好多都是 一知半解的程度~
      • jgj1218:nsstring如果不是修饰nsmutablestring完全可以用strong
        J_Knight_:嗯嗯 是的
      • 代码移动工程师:看了这么多博客,我突然想到了一句话,会营销比能力重要。
        J_Knight_:是说我会营销么? 这两个同样重要吧,没有技术基础也输出不了别人喜欢的东西
      • rsh_c5b7:大神,给我一份答案呗,发到471113989@qq.com
        谢谢啦!!
      • 码农淏:你高级题我都知道怎么回事,中级能答60分,初级一年前搞oc的时候,还凑合。。现在oc的挺多答不上来了。。。。。。
      • e89f012f167a:弱弱的问一句贵公司招H5,WEB前端,C#嘛??:smile: :smile: :smile:
        J_Knight_:暂时不招的~ :smile:
      • 秦雨巷:我真的不知道哪些问题的答案。。。略略略。。
      • 一曲梨花压海棠:不满您说,我觉得nsstring不一定非要用copy
        悖论13:你用strong修饰nsstring 你不怕外界改你代码??
        一曲梨花压海棠:@择一城终老_蜗牛 有深拷贝就得用copy了,大多数都用strong
        择一城终老_蜗牛:我平常居然一直用的是strong- -!
      • 灿烂先森:哈哈,看过之后表示自己初级水平不到:disappointed_relieved: !基础知识点很细致,根基不稳空中楼阁。加油,Knight!:+1:
        J_Knight_:一起加油~
        J_Knight_:没看到你的鼓励~ 多谢哈~
      • 若锦:看看了这些个面试题,发现自己有些答不上来,有些也是一知半解的样子:cold_sweat:
      • 代码移动工程师:面试的时候你得会造航母,面上后才发现是在航母上擦地板
        代码移动工程师:不管说啥都有人赞同和反对,只是比例的问题。
        e9a44a336dfe: @安迪杜弗瑞 问题是大部分都是要求造航母的价格,但能力值却是搽地板都做不好!
        J_Knight_:万丈高楼平地起
      • 低调_cd17:楼主:会背App Store 审核指南
        面试者:不会
        楼主:pass
        73d90af49c95:@低调_cd17 遇见段友了!如果面试者答:老子英文文档全部会背!但是就是木有被拒过!怎么破?
        低调_cd17:@J_Knight ::grin:
        J_Knight_:?? 我不是这样的啊
      • 丶纳凉:之前面试一家,全程2小时.难度不亚于这些. 技术过关,最终给13k;
        J_Knight_:@丶纳凉 这次主要面向的是2年以下的,主要还是看素质和对技术的追求。脚本语言真的不是大部分人都掌握的呢
        J_Knight_:看来iOS标准确实提高了~
        丶纳凉:还有就是,你这些只正对oc吧,而且这些题目感觉都是为了面试而面试;
        实际上,项目内的动画呢,怎么重构呢,具体功能实现思路呢;
        还有前端的呢,交互的呢;Android的呢;脚本语言会不会呢,起码基础懂得吧;


      • TRACER_:昨天在掘金上看到,表示很多都不会,正好这几天闲,决定自己整理一下:smile: :smile: :smile:

      本文标题:2017年5月iOS招人心得(附面试题)

      本文链接:https://www.haomeiwen.com/subject/mbjzfxtx.html