iOS笔试面试题
文章平均质量分 51
我会在专栏中和大家分享自己在各大国内互联网公司面试iOS工程师的各类题目,包括百度、网易等一线互联网公司。希望大家能顺利拿到iOS开发的offer。
乞力马扎罗的雪CYF
一只不孤独的猿。
展开
-
2017秋季校园招聘iOS开发岗位面试题集锦
笔者参加了2017秋季不少的校招iOS岗位面试,下面我把这些面试题都贴出来和大家共勉:一.搜狐快站1.谈谈你做过的项目;2.项目中最有成就感的部分;3.倒计时如何实现?(NSTimer,还有其他的实现方式吗);4.UIButton的继承关系?5.iOS中可以进行输入的控件?(UITextView,UITextField);6.快排的实现原理;7.短信验证码会有倒计时功能吗?第一次验证失败后还可以再原创 2016-12-06 00:55:18 · 10460 阅读 · 6 评论 -
国内大型门户网站iOS面试题
拿到该市值很高的门户网站offer颇不容易,总共经历了四面,其中前三面都是技术面,面试时间加起来120+ min。现在我把面试题和大家进行分享,希望在交流中实现共同进步。一面(16min)+二面(52min)1.一组正整数数字,如何找出两个数加为100的组合;(首先要排序)2.assign和weak的区别;3.http和https的区别;抓包的时候有什么区别;4.get和post的区别,其他还有哪原创 2016-02-07 10:05:14 · 4847 阅读 · 4 评论 -
国内搜索大哥iOS面试题
每一次面试之后都会对问到的面试题进行总结。这篇总结的是我面试某大型搜索公司的iOS面试题,一面(15min)+二面(30min),并拿到实习offer。当然在今天这个特殊的节日,祝大家新年快乐,希望大家都能拿到合适的offer。一面电面:15min;1.算法:数组中(无序的正整数数)如何找到第n大的数;2.算法:数组中1—100的有序数字如何找到第n大的数;(遍历计数)3.讲一讲OC中的运行时,动原创 2016-02-07 09:53:00 · 4078 阅读 · 2 评论 -
国内在线旅游巨头iOS面试题
首先今天祝大家新年快乐!如果你今天还在看这篇博客,那么你对写代码绝对是真爱。下面是我在面试某公司iOS开发实习生的面试题(拿到offer),今天作为福利分享给大家。一面技术面(90min)1.线程,有哪几种线程类型及使用;NSThread,NSOperationQueue,GCD;2.内存管理,内存优化;3.cocoapods;4.KVO,KVC;5.strong,weak,什么时候会造成循环引用原创 2016-02-07 09:42:44 · 4398 阅读 · 0 评论 -
Android开发经典笔试面试题汇总(持续更新中)
1.我们都知道Handler是线程与Activity通信的桥梁,如果线程处理不当,你的机器就会变得很慢,那么线程销毁的方法是:(A)A. onDestroy()B. onClear()C. onFinish()D. onStop()理解:正确销毁线程的方法应该是handler.removeCallBacks()。2.SharedPreferences保存文件的路径和原创 2015-08-02 20:42:41 · 6070 阅读 · 4 评论 -
Java开发人员面试题分析汇总(持续更新中)
1.单例模式常见的应用场景分析。 在23种设计模式中,单例模式排行老大。虽然理解容易,但是对于应用场景。你真的熟悉么?使用单例,是由于没必要每个请求都新建一个对象,这样既浪费CPU又浪费内存;之所以多例,是为了防止并发问题;即一个请求改变了对象的状态,此时对象又处理另一个请求,而之前请求对象状态改变导致了对象对另一个请求做了错误的处理。先来说说Javaweb中的单例应用场转载 2015-08-05 19:55:37 · 5120 阅读 · 2 评论 -
剑指Offer——面试小提示(持续更新中)
(1)应聘者在电话面试的时候应尽可能用形象的语言把细节说清楚。(2)如果在英语面试时没有听清或没有听懂面试官的问题,应聘者要敢于说Pardon。(3)在共享桌面远程面试中,面试官最关心的是应聘者的编程习惯与调试能力。(4)在介绍项目经验时(包括在简历上介绍和面试时口头介绍)时,应聘者不必要详述项目背景,而要突出介绍自己完成的工作及取得的成绩。(5)面试官除了希望应聘者的代码能够完成原创 2015-08-10 00:29:33 · 5152 阅读 · 1 评论 -
剑指Offer读书笔记(持续更新中)
(1)定义一个空的类型,里面没有任何成员变量和成员函数,对该类型求sizeof,得到的结果是多少?答案是1。空类型的实例中不包含任何信息,本来求sizeof应该是0,但是当我们声明该类型实例的时候,它必须在内存中占有一定的空间,否则无法使用这些实例。至于占用多少内存,由编译器决定。Visual Studio中每个空类型的实例占用1字节的空间。如果在该类型中添加一个构造函数和析构函数原创 2015-08-23 23:34:03 · 3883 阅读 · 1 评论 -
作为码农 ,我们为什么要写作
在程序员这个行业,坚持做技术写作的人一直比较少。我和身边的朋友沟通后,发现他们除了借口没有时间外,大多没有意识到写作带来的收益。在他们看来,将自己学到的知识简单记录下来就足够自己需要的时候回顾了。而技术写作通常需要花更多的时间,因为需要将技术的细节以及来龙去脉讲清楚。 不得不承认,这的确是一个事实,通常情况下,把一个知识讲清楚比理解它更难,那我们为什么要花时间写作呢?我想写作至少有转载 2015-08-12 02:13:51 · 2071 阅读 · 0 评论 -
作为程序员最应该投资的是这十件事
(1)博客建立自己的博客,每月至少发布一篇文章。做点研究,因为只有自己亲身经历过,才能言之有物,不会听上去像吹牛皮。学会如何写文章,像以前你的老师教的那样:列大纲,描述情节,最后检查语法和错别字。然后,即使再也不舍也要大刀阔斧的简化和缩短文章到一眼就能知道大概的意思。(2)开源现在的年轻人可能没有经历过,程序员随时会失业的悲惨境地。但是即使是在最黑暗的时期,凡是做过开源项目的,转载 2015-09-16 00:53:52 · 1616 阅读 · 0 评论 -
面试中如何“投机取巧”
(1)请你自我介绍一下自己?提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些简历上都有。其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过最成功的事情、主要的成就等。这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事的能力,说的合情合理企业才会相信。企业很重视一个人的礼貌,求职者要尊重考官,在回答每个转载 2015-09-16 01:11:13 · 2106 阅读 · 0 评论 -
iOS程序员面试要注意的几个问题~
1自动释放池是什么,如何工作?当您向一个对象发送一个autorelease消息时,Cocoa就会将该对象的一个引用放入到最新的自动释放池。它仍然是个正当的对象,因此自动释放池定义的作用域内的其它对象可以向它发送消息。当程序执行到作用域结束的位置时,自动释放池就会被释放,池中的所有对象也就被释放。2说一说static 关键字(1)函数体内 static 变量的作用范围为该函数体,不同转载 2015-09-22 00:47:18 · 1530 阅读 · 0 评论 -
100个 iOS 程序员面试题汇总
无论是对于公司还是开发者或设计师个人而言,面试都是一项耗时耗钱的项目,本文从编程、设计、App Store等各个方面对iOS开发者及设计师在面试时可能会遇到的问题进行了筛选与汇总。一方面,能够帮助HR在短时间内获取更多反馈信息,更好地甄选合适人选,而 iOS 开发者及设计师在寻找相关工作时,也可作为参考,为面试做好万全准备。常见问题你昨天/这周学习了转载 2015-09-22 23:53:29 · 1805 阅读 · 0 评论 -
iOS项目开发实战——屏幕适配、单位点和分辨率
在项目开发中,目前iPhone有如下的几种屏幕宽高(单位点)和屏幕模式之间的关系:(1)iPhone 3GS : 320点*480点 ;1*;分辨率:320*480;(2)iPhone 4/iPhone 4s :320点*480点 ;2*; 分辨率:640*960;(3)iPhone 5/iPhone5s: 320点*568点 ;2*; 分辨率:640*1136;原创 2015-09-23 00:47:49 · 2030 阅读 · 0 评论 -
程序员面试必备规程
第一个问题就是“不求甚解”。何为不求甚解?其大多数的问题就是在于大量的使用第三方的jar包,问他个原理一点也答不上来,甚至是最基础的。举个例子说明,比如我问他json数据怎么解析,都知道哪些解析器,直接不知道,因为现在的开发者都直接去使用GJSON,从来不去了解解析的整个过程和原理,更不会写。虽然用google提供的工具可以轻松实现,但是原理和过程还是得要学习的。学了总会有用,现在第三方的转载 2015-09-24 11:51:59 · 1309 阅读 · 0 评论 -
就这样拿到了网易的offer
终于拿到网易的offer,心里松了一口气,谁能晓得我接到offer之后当天晚上激动得一宿没睡着。回来这里写一下面经当是还愿! 希望对正在为此努力的人有一点点帮助。首先,要明确一点,找工作面试这些真的是要看缘分的,我们只能在自己可以把握的范围内尽量努力,控制可以控制的部分,其他随缘吧。找工作面试的时候,特别是对于大公司,其实有一点性格品质非常重要:谦虚,谦虚,再谦虚。 因为大公司它的整体转载 2015-09-25 23:58:13 · 6399 阅读 · 2 评论 -
代码审查的5点经验教训总结
我们时常会听到团队成员说:“这个项目搞代码审查简直是在浪费时间。”“我没时间做代码审查。”“发布会延迟,是因为我那个卑鄙的同事还没有审查过我的代码。”“你能相信我的同事居然要求我改我的代码吗?我这么优雅完美的代码哪里还需要改呢。”我们为什么要做代码审查?任何专业的软件开发人员其最重要的目标之一就是要不断提高自己的工作质量。但是只有团队协作才能力往一处使,劲往转载 2015-09-26 00:05:41 · 1622 阅读 · 0 评论 -
一次难忘的百度面试经历(附电话面试题)
从百度校园招聘开始,我就投了一份简历。在别人都有在线笔试机会的时候,我却没有任何消息。 听说师兄可以给推荐,我就又通过内部推荐的方式投递了一次,这次很快就有消息了——拒信。 那时基本上就放弃了百度。可是大概20多天以后,我投递的第一份简历有消息了——通知我在线笔试。经过精心准备,笔试题答得还凑合。过了几天给我来了封邮件告知我笔试通过,会找时间安排电话面试。又过了好几天,我正在剃头的转载 2015-09-26 00:31:25 · 4775 阅读 · 0 评论 -
怎么进入 BAT 的研发部门?
小伙伴们是不是都很想进bat呢,这篇文章来给你一些经验!本人在 2015 年校招拿了 BAT 以及网易游戏等 offer,而且基本上都给了 Special,那就从我的角度来谈谈今年校招的体会。1. 冰冻三尺非一日之寒综合身边一些拿到牛 offer 的同学,有个共同的特点就是:热爱这个行业。一个人在某个领域的成就是和自身在相关领域投入的时间和精力成正相转载 2015-09-26 00:34:22 · 1901 阅读 · 3 评论 -
编程15年的技术大神之经验告白,样样实在
学习过程中的弯路是不得不走的,但是学习方法上的弯路还是可以绕的。得到经验和浪费时间终归是两回事吗?我是个完完全全自学入门的人,现在虽已经进入科班,但是我认为经验还是可以分享给想自学编程的大家的。当然如果大家是想要为了信息学的竞赛学习,那我觉得这个答案就不适合你了,你应该选择更为系统,更为针对,强度也更大的训练方法。1.大多数人学习编程最早的懊恼就是不明所以的“烫烫烫烫烫烫烫烫”,虽转载 2015-09-26 00:51:05 · 2577 阅读 · 0 评论 -
面试腾讯就是这样?
今天上午参加了腾讯的面试,回来后比较累,还要应付老师那边,本来不准备写帖子了,想了想,说不定会对大家有帮助,晚上就写一下。本人做的是安卓端的。面试的时间差不多是10点半。早上差不多提前1个小时到了面试的地方,看到已经 有很多人在等待了。进去后,如果是收到短信的,只要坐在那里等着叫名字就可以了,如果是霸面的,要先提交简历。这点腾讯还是做的很不错的。面试我的可能年经比较大,头发已经白了一些。下转载 2015-10-07 01:24:13 · 1801 阅读 · 2 评论 -
应届生百度android一面(失败)
今天下午去参加 了 百度的安卓面试,很荣幸的挂了。本来别人好像是准备两轮面试一起搞的,结果给了我一面,然后就告诉说二面对我可能比较难。 我本身是是做电子的,自己自学的软件,整个一面过程一共1小时40分钟。 刚刚开始简单的做了个自我介绍,感觉面试官人还是很好,非常友善。面试中一些技术的问题按问的时间列在下面: 1. 关于自己做的一个项目的一些问题,问了pulltorefresh的一些状态转载 2015-10-07 01:26:00 · 1690 阅读 · 0 评论 -
面过蘑菇街、微店、美团、京东,已拿美团微店offer
蘑菇街(java应用开发工程师 电面)8月份蘑菇街内推,面试真是慢的要死,基本10天一面,最后被HR拒绝。因为时间太久,可能有些问题已经回忆不起来。一面重点问了问项目,socket通信,TCP三次握手四次挥手,NIO,BIO,区别?还有数据库mysql select优缺点,这个问题没听明白,后来把我引到nosql,mongdb,然而并不会,然后去我项目的数据库结构进行了转载 2015-10-07 01:41:14 · 3232 阅读 · 1 评论 -
Objective-C自动释放池AutoreleasePool详解
当您向一个对象发送一个autorelease消息时,cocoa就会将这个对象的一个引用放入到最新的自动释放池。当程序执行结束时,自动释放池就会被释放,池中所有的对象也就会被释放,也就是执行一次release操作。所以说,自动释放池是OC中的一种内存自动回收机制,可以将一些临时变量通过自动释放池来统一回收和释放。 在一个OC编写的iOS项目中,main.m文件下的代码如下:这里就使用原创 2015-10-12 23:01:25 · 2278 阅读 · 0 评论 -
详解Objective-C的优点和不足
【优点】1.Category类别【缺点】1.【详解】【1】.category类别:Category依赖于类,它可以在不改变原有类的基础上,为类增加一些方法。在和别人进行合作的时候,就不用担心合并冲突的问题。category的使用需要注意如下:1)分类只能增加方法,不能增加成员变量;2)在分类方法中可以访问原来类中的成员变量;3)分类中原创 2015-10-13 14:51:59 · 5292 阅读 · 2 评论 -
Objective-C内存管理详解——引用计数
cocoa中的内存管理机制——引用计数。cocoa中提供了一个机制来实现上面提到的这个逻辑模型,它被称为“引用计数”(reference counting)或“保留计数”(retain counting).引用计数的数值表示对象有几个“人”在使用它。1)每一个对象都有一个引用计数;2)当对象被创建的时候,引用计数的值是1;3)当发送retain消息时,该对象的引用计数+1,该对原创 2015-10-13 17:10:48 · 1622 阅读 · 0 评论 -
Objective-C内存管理详解——对象所有权
当一个所有者(owner,其本身可以是任何一个OC对象),做了以下某个动作时,它就拥有了对一个对象的所有权(ownership).(1)如果创建或者复制某个对象时,则拥有了该对象的所有权:alloc,allocWithZone,copy,copyWithZone,mutableCopy,mutableCopyWithZone(2)如果没有创建对象,而是将对象保留使用,同样拥有该对象的所原创 2015-10-13 17:39:27 · 1542 阅读 · 0 评论 -
Objective-C内存管理详解——dealloc方法
当对象的引用计数为0时,系统就会自动调用dealloc方法,回收内存。一般写法如下:- (void) dealloc{ [super dealloc];}为什么要调用父类的dealloc方法:子类的某些实例是继承自父类的。因此,我们需要调用父类的dealloc方法,来释放父类拥有的这些对象。调用的顺序:当子类的对象释放完时,然后再释放父类所拥有的实例。原创 2015-10-13 20:52:19 · 1309 阅读 · 0 评论 -
Objective-C内存管理详解——点语法的内存管理
一.【赋值】(1)assign:直接赋值,默认;(2)retain:保留对象;(3)copy:拷贝对象;二 .【读写性】(1)readwrite:生成getter,setter方法,默认;(2)readonly:生成getter方法;三.【原子性】(1)atomic:多线程情况下,存在线程保护,默认;(2)nonatmic:多线程情况下,不存在线原创 2015-10-14 09:10:24 · 1394 阅读 · 0 评论 -
Objective-C内存管理详解——ARC和垃圾回收机制
ARC的基本概念: ARC自动引用计数,当你在编译程序时提供自动管理内存的功能,它会自动加入内存的控制代码,控制对象的生命周期。这是在iOS4以后引入的技术。此时你在代码中使用release,retain时就会报错,也就是这些方法被禁用。当然你也可以在项目中进行设置,选择重新启用MRC(手动内存管理)。在Build Setting里面把“Objective-C Automatic R原创 2015-10-14 11:23:19 · 5066 阅读 · 0 评论 -
iOS包管理工具——Cocoapods详解
在进行iOS开发的时候,总免不了使用开源的第三方库,使用这些库的时候我们往往需要经历以下步骤:(1)下载开源库的源代码并引入到工程;(2)向工程中添加开源库所需要的framework;(3)解决开源库和开源库之间,以及开源库和工程之间的依赖关系,检查重复添加framework的问题;(4)如果开源库有更新,还需要把旧的开源库删除,重复执行以上的三个步骤;自从有了Cocoapod原创 2015-10-16 09:27:56 · 1509 阅读 · 0 评论 -
iOS内存优化——Instruments详解
Instrments是iOS开发中用来检测内存管理,性能优化的工具。尤其是在iOS5之前还没有支持ARC的时候,容易忘记释放内存。应用在后台运行的时候,仍然会占据原来的内存。在进行iOS的自动化测试框架UIAutomation中,Instrument对UIAutomation进行了很好的支持。 Instrument包含以下功能:(1)分析程序进程行为;(2)分析内存分配及原创 2015-10-16 10:59:10 · 2210 阅读 · 0 评论 -
iOS开发——Handoff详解
iOS8推出一个新特性,叫做Handoff。Handoff中文含义为换手(把接力棒传给下一个人),可以在一台Mac和iOS设备上开始工作,中途将工作交换到另一个Mac或iOS设备中进行。这个在iOS8和Yosemite得到支持,当然在iOS9和EI Captain中也有这个功能。 Handoff中使用了一个“活动”的概念,它可以在多台设备间传递用户的“活动”。当用户从一台设备切换到另一原创 2015-10-17 01:06:46 · 5037 阅读 · 0 评论 -
iCloud浅析
iCloud是苹果公司所提供的云端服务,使用者可以免费存储5G的资料。iCloud可以存放照片、文档等内容,以无线的方式推送到所有的设备上,一切都会自动进行。iCloud有什么功能?(1)通过无线网络用户可以进行iCloud的各种云存储,包括音乐,应用,电子书,照片,通讯录,邮件等数据,均可以进行自动的上传与下载。同时还可以分享给自己的朋友,支持不同苹果设备之间的云内容交换。(2)iC原创 2015-10-17 10:41:05 · 2929 阅读 · 0 评论 -
iOS扩展Extension详解
扩展Extension是iOS8中引入的非常重要的新特性。扩展让App之间的数据交互成为可能。用户可以在App中使用其他应用提供的功能,而无需离开当前的应用。 在iOS8之前,每一个App在物理上都是彼此独立的,App之间不能互访彼此的私有数据。而在扩展引入之后,其他App可以与扩展进行数据交换。基于安全和性能的考虑,每一个扩展运行在一个单独的进程中,他拥有自己的bundle,bun原创 2015-10-17 13:21:02 · 2477 阅读 · 0 评论 -
iOS创建扩展与发布扩展
在创建扩展之前,你需要创建一个用来包含扩展的常规的app项目。这个包含扩展的app称为containing app。在创建好containing app之后,选择File-->New-->Target菜单,选择一个适当的扩展目标模板。每一个扩展目标模板都包含了与扩展点相关的文件和设置。一个containing app可以包含多个不同类型的扩展。 每一个扩展目标模板包含一个头文件和实现文件原创 2015-10-17 13:51:02 · 1576 阅读 · 0 评论 -
iOS理解扩展的运行机制
在安装扩展之后,扩展并不会自动运行,用户必须执行特定的操作来启用扩展。如果是Today扩展,用户可以在通知中心的Today视图中编辑启用扩展。如果是自定义键盘扩展,用户需要在系统设置的通用选项下的键盘选项中启用自定义键盘扩展。如果是Share扩展,用户只需点击系统提供的分享按钮,即可在分享列表中找到分享扩展。 一个扩展并不是一个app,他的生命周期和运行环境不同于普通app。在生命周期原创 2015-10-17 14:28:19 · 1363 阅读 · 0 评论 -
iOS应用沙盒机制浅析
iOS应用程序只能在为该程序创建的文件系统中读取文件,不可以去其他地方访问,此区域被称为沙盒。所有的非代码文件都要保存在此,例如图像,图标,声音,属性列表(plist文件),文本文件等。沙盒机制作为一种安全体系,核心内容是:沙盒对应用程序执行各种操作的权限限制。(1)每个应用程序都有自己的存储空间;(2)应用程序不能翻过自己的围墙去访问别的存储空间的内容;(3)应用程序请求的数据都要通原创 2015-10-17 21:01:41 · 1945 阅读 · 2 评论 -
iOS辅助功能Accessibility浅析
对于我们普通人来说,iOS辅助功能可能用的并不多,但是对于残障人士如视力或者听力有缺陷的人来说,iOS辅助功能就显得非常人性化了。下面简单来谈谈有哪些iOS辅助功能。1.Voiceover(1)。VoiceOver屏幕阅读器让你即使无法看清屏幕,也能够在iOS设备上操作和互动。(2)。有了VoiceOver,你可以在屏幕上手写文字,并将其转换为邮件、备忘原创 2015-10-17 21:43:07 · 6680 阅读 · 1 评论 -
iOS SpriteKit/SceneKit/Metal浅析
【SpriteKit】 在iOS7中内置了新的SpriteKit框架,该框架主要用来开发2D游戏。是开发iOS和OS X 下的2D游戏引擎,可以使用OC或者Swift来进行开发。目前已经支持的内容包括:精灵、很酷的特效(例如视频、滤镜和遮罩),并且还集成了物理库等许多东西。首先指出在iOS中开发2D游戏SpriteKit并不是唯一的选择,我们先来看看SpriteKit的特点和优缺点:原创 2015-10-20 15:57:50 · 10206 阅读 · 1 评论