ios工程师面试题(精选12篇)
ios工程师面试题 第1篇
湖南路线图网络科技有限公司 技术中心 内部资料
IOS开发工程师面试题(45分钟)
1.请详述viewController的生命周期?
2.OC中类的属性retain, assign, weak, strong的作用是什么?
3.OC中SEL是什么,有什么作用?
4.如何在OC的字典或数组中存取一个基本数据类型的值?如何把字典或数组中的值转换成基本数据类型的值?
5.IOS中界面间传值的方式有哪些?
6.OC中通知有哪几类?请简述苹果推送的流程?
7.OC中浅拷贝和深拷贝的区别是什么?
8.什么是block?block如何使用?
9.谈谈OC中内存管理的方式和过程,以及ARC的使用注意事项,如何在ARC的工
程中使用非ARC的类和开源框架?
10.简要说明下OC的延展和分类的作用和区别
11.OC中多线程的实现方式有哪些?如何实现在一个异步线程中使用一个定时器?
12.请例举常用的网络请求开源框架、JSON解析开源框架、UI开源框架。
13.请详述如何使app对IOS6、IOS7、iphone4S、iphone5做界面适配的方法
14.请列举出你所知道的设计模式及各种设计模式的特点。
ios工程师面试题 第2篇
@interface USER
{NSSTring *name;}
@end
a)self.name=@”abc”与name=@”abc”的区别?
b)self.name=[[NSSTring alloc]initWithString:@”abc”];中name的retainCount是多少?
c)补全setName:(NSSTring *)myName方法
d)这里用self.name访问了name属性,还可以用别的方法访问name属
性么?
2.UITableView中什么可以自定义?
3.view.bounds和view.frame有什么区别?
4.iOS中是怎样进行内存管理的?
5.简述分类与继承的区别。
6.简述CALayer与UIView的区别。
7.简述堆与栈的区别。
8.简述Delegate、KVO和NotificationCenter区别。
9.用预处理指令#define声明MAX(X,Y)和MIN(X,Y)。
10.试写出strCompare
11.对于一个字节(8bit)的变量,求其二进制中“1”的个数,要求算法的执
行效率尽可能地高。
12.求两个正整数的最大公约数,要求算法的执行效率尽可能地高。
13.如何判断两个单向链表是否相交?
14.能不能找到符合如下条件的9位数:
a)这个数包括了1-9这9个数字;
b)这个9位数的前n位都能被n整除,若这个数表示为abcdefghi,则ab
可以被2整除,abc可以被3整除„„abcdefghi可以被9整除。
15.说说autorelease和release 的区别?
16.如何下载图片?
17.微博的认证?
18.版本扩展?
19.程序调试?
20..(点)运算符?
21.UITableView中每一行都缓存图片的处理,如何处理才能在滑动时不会出现等
待的现象。
公选科级干部面试题解析 第3篇
综合分析类
第一题:有人认为, 一个人要发展, 必须要靠机遇, 但也有人说机遇可遇不可求, 最终要靠实力。对此, 你怎么看?如果这次竞争成功, 你认为自己靠的是机遇还是实力?
【解析】这是一道综合分析类型的题目, 同时也是一道观点阐述类型的题目, 旨在考察考生的综合分析能力、辩证思维能力和语言表达能力。
从出题者的思路来说, 看考生能否对不同的观点作出正确的判断, 并对观点提出认同的理由。如果考生选择错误, 那么给出的理由就有可能牵强附会, 难以自圆其说。实际上, 多数观点类型的题目, 必须都是正确的, 但是, 必须要客观地看、辩证地看、从不同角度去看, 都有一定的道理, 又都似乎有不周到的地方。当然, 也有的就是错误的。这就要看考生的知识面, 能否上升到哲学的高度去理解和分析。就这一道题目而言, 回答起来是非常简单的。首先要肯定这两种观点都是正确的, 但都不够全面;其次是要指出, 一个人要发展, 既要靠机遇, 更要靠实力, 是机遇和实力的结合, 成就一个人的发展。当然, 首先是要有实力, 然后是机遇。不然, 有了机遇, 没有实力也不成。只有有了实力, 一旦有了机遇, 才能成功。再次是要考生回答, 如果这次竞争成功, 认为自己靠的是机遇还是实力的问题。对于这一问的回答, 无非是结合自身的实际, 再谈谈对本次公选给了自己的机遇, 但是, 真正使自己竞争成功的, 还是自己的实力, 是自己平时注重学习。注重知识积累、注重提高能力, 而使自己能够从众多的竞争者中脱颖而出。
从考官对考生的评判标准来说, 着重要把握的就是上述三个方面, 考生回答得越是诚恳、可信, 越是能够打动考官。也可以添加一些具体生活或工作中的小事例, 加以说明。
从当天本组35名考生的回答来看, 几乎所有回答都是完美的, 考官给出的小分都很高, 几乎都在上等的位置。
情境模拟类
第二题:如果你到新岗位工作后, 手下只有两个兵。小孙业务能力强, 但性格孤僻;小赵勤勤恳恳, 但能力一般。小孙经常瞧不起小赵, 小赵对小孙也经常抱怨。你将如何带领这支团队开展工作?
【解析】这是一道情境模拟类型的题目, 也是一道人际沟通与协调类型的题目。旨在考察考生的领导能力, 对下属如何做好思想工作, 团结一致完成组织目标的能力。
从出题者的思路来说, 主要看考生能否站在全局和大局的高度, 协调好下属的矛盾, 发挥团队合作精神, 实现有效组织目标。对于这一道题目回答, 考生必须要把握以下几点:一是作为新任领导, 对遇到题目给定的情况, 必须要认真对待, 冷静处置。不然就会出现“三个人三条心”的状况。二是要通过交流谈心, 了解两个兵背后的真实情况, 进行具体问题, 具体分析。三是要明确工作职责范围, 把注意力引导到工作上来。四是要加强思想教育, 让他们感受到团结出生命力、团结出战斗力。五是要通过自己的努力和表率作用, 让他们感受到人与人相处, 需要理解与包容。特别是在一起工作, 既需要合作, 更需要有团队精神、大局意识, 来调动他们的工作积极性, 主动作为。
从考官对考生的评判标准来说, 衡量一个考生的回答是否完美, 主要就是看上述的五个方面。当然, 从回答中还可以看出考生是否真正具有一个领导者应有的风范和领导方法。同样, 还有效率、激励、考核等, 能够回答到, 会更加完美。
从当天本组35名考生的回答来看, 绝大多数回答是不错的, 仅有少数考生回答得不够理想。从考官给出考生的小分来看, 都在中等偏上。
组织协调类
第三试题:某县正在开展“访民情、解民忧、办实事”活动, 组织上安排你带队到某村走访, 群众向你们反映了许多农村公共基础设施建设上的问题, 有的桥梁年久失修, 存在极大安全隐患;有的村民组电路严重老损, 一到夏天便无法用电。面对群众提出的问题, 你打算怎么去处理?
【解析】这既是一道情境模拟类型的题目, 也是一道组织协调类型的题目。旨在考察考生的群众观念, 政策法律意识, 组织协调和处理复杂问题的能力。
从出题者的思路来看, 是要考生能够准确把握中央对领导干部“访民情、解民忧、办实事”的理解, 通过“访、摸、办”真正体验到农村工作的艰难、农民的艰辛、农业生产的艰苦, 更加重视和关注“三农”。尤其是中央对今后“三农”工作提出的宏伟蓝图, 发展目标, 要有新的理解。过去我们常说:“群众事无小事”, 那么, 涉及农民、农业、农村每一件事, 都事关农民的切身利益。需要考生通过自己的回答, 体验出对“三农”的关心与关注。回答好这一题目, 可以说, 对多数考生来说, 有一定难度, 但是, 作为一名领导干部, 必须要了解。因为一旦走上领导岗位, 这样的事是常常发生的, 要能够面对, 更要敢于面对。
从考官对这一道题目需要把握的要点来看, 着重在以下几个方面:一是要熟悉上级政策和相关要求。究竟什么是政策能够解决的, 什么是政策不能够解决的。二是要带着感情下去, 真正把农民当亲人。只有当亲人, 才能体会到农民朋友的“难”。三是要摸清农村、农业、农民的真实状况, 给上级领导机关提出意见或建议, 加大对“三农”工作的支持。四是要主动协调相关部门, 给予相应的支持, 特别是供电、交通、水利、乡村建设等部门的支持。毕竟, 这几年, 中央和各级政府都在加大对“三农”工作的支持, 有许多项目资金等待投入。五是要主动帮助基层组织编制项目, 同他们一道跑部门, 争取项目支持。“访民情、解民忧、办实事”的落脚点就是“办实事”, 解决了群众的需要是活动的目的, 也是关键。
|轻松阅读东鳞西爪|DONGLINXIZHAO
古代首脑有哪些称呼
□赖军
夏代以前, 全氏族的共同始祖就是天然的首领, 称为“后”, 本意是生育。部落和部落联盟的首领称“伯”, 由选举产生, 伯即老大之意。大禹治水后中原出现了最早的国家夏, 夏朝的首脑称后。从商汤开始, 国家的首脑称王。周王统治的地区叫“天下”, 由周王分封的诸侯统治区域叫“国”, 由诸侯再分的大夫领地叫“家”。周王又称“天子”, 意为上天之长子受命于天在人间进行统治。周天子的各个封国君主都由周王策命, 王畿内的统治者称“公”或“伯”, 王畿外的一般通称为“侯”, 诸侯死后一般尊称为“公”, 并评一个称号, 叫做“谥号”。
从当天本组35名考生的回答来看, 这一道题目, 多数没有回答好。从考官给出的小分来看, 多数在中等偏下, 关键是没有能够吃透政策, 把握住题目中的关键问题是“访民情”, 是要对“群众向你们反映了许多农村公共基础设施建设上的问题, 有的桥梁年久失修, 存在极大安全隐患;有的村民组电路严重老损, 一到夏天便无法用电”等问题的处理。可以看出考生对上级领导对基层干部要求的关注度不够。
总之, 中组部对公选干部有一个明确的指导思想, 就是“干什么、考什么”, “考什么, 更需要干部去干什么”, 往往许多考生缺少的就是对实际工作的了解和把握, 可以看出基层锻炼对年轻干部成长的重要。近年来, 许多突发事件的发生, 本身只是少数人的维权, 但是, 之所以成了群体性的事件, 就是许多干部缺少对基层群众的了解, 用过急的“对手思维”方式去处理, 结果很糟。所以考生要切实加强基层锻炼, 才能走上领导岗
编辑史新建
秦始皇统一中国, 决定用皇帝这个称号, 皇帝是理想化的君主和至高无上的太阳神的化身。从秦始皇到辛亥革命推翻清王朝, 皇帝的称号在中国沿用了两千多年。皇帝自称“朕”, 臣民称皇帝叫“陛下”, 史官记事称皇帝为“上”, 皇帝说的话叫“制”“诏”, 通俗说法叫“圣旨”或“金口玉言”。皇帝所用之物叫“御”, 所用之印叫“玺”, 所到之处叫“幸”。臣民谈皇帝通常以“县官”代之, “万岁”也是皇帝的代称。■
“天才”面试题 第4篇
1房里有三盏灯,房外有三个开关,在房外看不见房内的情况。但可以任意扳动开关。你只能进门观察一次,你用什么方法来区分哪个开关控制哪一盏灯?
2有两根粗细不均匀的香,燃烧时快时慢,但每根香烧完的时间确定是一小时。你能用什么方法来确定45分钟的时间?
3村子里有50个人,每个人都有一条狗,在这50条狗中有病狗(这种病不传染),人们要找出病狗。每个人可以观察其他49条狗,以判断它们是否生病,但只有自己的狗不能看,观察后得到的结果不能交流,也不能通知病狗的主人。主人一旦推算出自己的狗有病时,就必须在一天内将其枪毙,而且只有权力枪毙自己的狗,没有权力打死其他人的狗。第一天大家全看完了,但枪没响,第二天枪也没响,第三天才传来枪响。问:村里共有几条病狗?如何推算出来的?
4在太平洋的一个小岛上生活着土著人,他们不愿意被外人打扰。一天,一位探险家到了岛上,被土著人捉住,土著人的首领告诉他:“你临死前可以有个机会留下一句话,如果这句话是真的,你将被烧死;如果是假的。你将被五马分尸。”可怜的探险家说什么才能活下来?
5一个老师为了测试一下A、B两个学生哪一个反应速度更快,就把他们带到一个伸手不见五指的黑房子里。老师打开灯说:“这张桌子上有五顶帽子,两顶是红色的,三顶是黑色的。现在,我把灯关掉,并把帽子的顺序搞乱,然后,我们三人每人摸一顶戴在头上。当我把灯打开时,请你们尽快说出,自己头上戴的是什么颜色的帽子。”然后老师把灯关掉了,三个人都摸了一顶帽子戴在头上,同时,老师把另外两顶藏起来了。电灯打开后,那两个同学看到老师头上戴着的是顶红色的帽子,过了一会儿,A喊道:“我戴的是黑帽子。”请问A是如何推理的?
答案(仅供参考):
1先打开两个开关,等一段时间再关上其中一个,马上进里观察。打开的灯对应打开的开关,因此用手摸到热的灯对应刚刚关闭的开关,凉的对应始终投打开的开关。
2点燃其中一根。并把另一根两头点燃。第二根烧完恰好过去30分钟,第一根剩下部分应该能支撑30分钟的燃烧。然后把第一根剩下的部分两头点燃,15分钟即可燃尽,此过程一共耗时45分钟。
3若只有一条病狗,病狗的主人看到其他的狗都沒有病,那么就知道自己的狗有病,所以第一天晚上就会枪响。因为没有枪响,就说明病狗数量大于1。若有两条病狗,病狗的主人会看到有一条病狗,而第一天没听到枪响,说明病狗数大于1,所以病狗主人也会知道自己的狗有病,因而第二天会听枪响,既然第二天枪也没响,说明病狗数大于2。依此类推,如果第三天听到枪响。说明有三条病狗。
4这是一个悖论问题,探险家只能描述一种非真非假的状况,比如:我将被五马分尸。如果土著判定这话是真的,那么他将被烧死——这样“五马分尸”就成假的了。如果土著判定这话是假的,那他将被五马分尸的话就变成了真的。
5如果A戴的是红帽子,那么B马上就可以猜出自己戴的是黑帽子(因为红帽子只有两顶);而B并没有立刻猜到,所以A马上推断出自己戴的是黑帽子!
汪新才摘自《狗眼看世界》
ios基础面试题 第5篇
1、Object-C有多继承吗?没有的话用什么代替?
2、Object-C有私有方法吗?私有变量呢?
3、关键字const什么含义?
4、关键字volatile有什么含义?并给出三个不同例子?
5、static作用?
6、#import和#include的区别,@class代表什么?
7、线程和进程的区别?
8、堆和栈的区别?
9、Object-C的内存管理?
10、为什么很多内置的类,如TableViewController的delegate的属性是assign不是retain?
11、定义属性时,什么情况使用copy、assign、retain?
12、对象是什么时候被release的?
13、iOS有没有垃圾回收?
14、tableView的重用机制?
15、ViewController 的loadView、viewDidLoad、viewDidUnload分别是什么时候调用的,在自定义ViewCointroller时在这几个函数中应该做什么工作?
16、ViewController的didReceiveMemoryWarning是在什么时候调用的?默认的操作是什么?
17、列举Cocoa中常见的集中多线程的实现,并谈谈多线程安全的几种解决办法,一般什么地方会用到多线程?
18、怎么理解MVC,在Cocoa中MVC是怎么实现的?
19、delegate和notification区别,分别在什么情况下使用?
20、self.跟self什么区别?
21、id、nil代表什么?
22、内存管理 Autorelease、retain、copy、assign的set方法和含义?
23、类别的作用?
24、委托(举例)
25、retainCount?
更多经典的面试试题分享:
iPhone软件开发面试题
九种最难缠的面试题
银行面试常见问题
iOS开发、设计面试题 第6篇
你昨天/这周学习了什么?
你为什么热衷于软件开发?
你对哪一种控制系统比较熟悉?
是否参与过GitHub项目?
是否参与过GitHub或其他同类型网站的iOS开源项目?
请描述一下你的iOS应用开发流程。
是否熟知CocoaPods?它是什么?如何运行的?
请概括一下你对软件授权的理解,及其对软件开发的影响。
请概括一下你在构建iOS应用时的测试过程。iOS应用如何实现对其他语言、日期格式以及货币单位的支持?
请描述一下Instruments及其作用。
关于iOS技术
请解释一下Handoff是什么,并简述它是如何实现iOS、Mac/网页应用互通的。
iCloud包含了哪些技术与服务?
iOS扩展是指?能否列举一些热门或常见的范例?
HealthKit是什么?
HomeKit是什么?
Apple Pay是什么?能否描述一下如何在应用中使用Apple Pay?
请解释一下iOS应用沙盒机制。
VoiceOver是什么?请举例解释一下iOS中的辅助功能(Accessibility)。开发者如何使用这些功能?
iOS应用是如何实现后台多任务处理(Multitasking)的?
Game Center针对iOS游戏有哪些功能?
iBeacons是什么?
Cocoa/Cocoa Touch是什么?
请概括一下Core Audio,Core Data以及Core Location各是什么。它们对iOS应用有何意义?
请描述SpriteKit和SceneKit的作用。
Metal是什么?
响应链(Responder Chain)是什么?它是如何发挥作用的?
按钮和其他控制方式对哪些操作做出回应?
AppDelegate扮演着什么样的角色?
请解释一下NSUserDefaults。就你而言,你会如何在磁盘中对数组对象进行序列化?
你会如何储存用户的认证信息?
请问何为Keychain服务?
ios工程师面试题 第7篇
1、UITableView能够绑定多个数据源。(错)
2、一个UIViewController可以管理多个UITableView。(对)
3、Object-c的类可以多重继承。(错)
4、objective-c类里面的方法只有两种, 静态方法和实例方法。(对)
5、NSFileManager和NSWorkspace在使用时都是基于进程进行单件对象的实例化。(对)
6、用类别增加方法时,不能与原来类中的方法产生名称冲突。(错)
7、frame指的是该view在本身坐标系统中 的位置和大小。(错)
8、method是一个方法的名字,selector是一个组合体。(错)
9、ARC是编译特性,不是运行时特性,在编译时,编译器会自动加上释放代码。(对)
10、从iOS4之后,Safari支持全屏浏览,Siri支持普通话。(对)
二、填空题(每空2分,共20分)
1、iOS是使用Objective-C语言编写的,使用该语言开发的Cocoa是一款功能强大的用户界面工具包,也是iOS的核心。
2、数组是将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何元素。链表恰好相反,其中的元素在内存中不是顺序存储的,而是通过存在元素中的指针联系到一起。
3、发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作。而发送异步请求不会阻塞主线程,会建立一个新的线程来操作,之后程序可以继续运行。
4、autorelease只是把Object放入了当前的autorelease pool中,当它被释放时,其中的所有Object都会被调用Release。
5、作为Objective-C导入头文件的关键字,#import<>用来包含系统的头文件,#import””用来包含用户头文件。
三、简述题(每题4分,共20分)
1、delegate和notification有什么区别,什么情况下使用?
答:delegate:消息的发送者(sender)告知接收者(receiver)某个事件将要发生,delegate同意然后发送者响应事件,delegate机制使得接收者可以改变发送者的行为。通常发送者和接收者的关系是直接的一对多的关系。
notification:消息的发送者告知接收者事件已经发生或者将要发生,仅此而已,接收者并不能反过来影响发送者的行为。通常发送者和接收者的关系是间接的多对多关系。
2、Object-C中创建线程的方法是什么?如果在主线程中执行代码,方法是什么?如果想延时执行代码、方法又是什么?
答:线程创建有三种方法:使用NSThread创建、使用 GCD的dispatch、使用子类化的NSOperation,然后将其加入NSOperationQueue。
在主线程执行代码,方法是 performSelectorOnMainThread。
如果想延时执行代码可以用performSelector:onThread:withObject:waitUntilDone。
3、iOS有哪些数据持久化方式?
答:四种:属性列表、对象归档、SQLite3和Core Data。
4、Objective-C如何对内存管理的,说说你的看法和解决方法?
答:Objective-C的内存管理主要有三种方式ARC(自动内存计数)、手动内存计数、内存池。解决方法的话:谁持有,谁释放。
5、如何对iOS设备进行性能测试?
答:Profile-> Instruments->Time Profiler。
四、问答题(每题10分,共20分)
1、什么是MVC,为什么使用MVC,有什么好处?描述一下iOS SDK中如何实现MVC的开发模式。
答:MVC分别为:模型(Model),视图(View)和控制Controller)。
模型(Model):即“数据模型”,用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。“模型”有对数据直接访问的权力,例如对数据库的访问。视图(View):视图层能够实现数据有目的显示。
控制器(Controller):控制器起到不同层面间的组织作用,用于控制应用程序的流程。对于iOS SDK,所有的View都是视图层的,它应该独立于模型层,由视图控制层来控制。所有的用户数据都是模型层,它应该独立于视图。所有的ViewController都是控制层,由它负责控制视图,访问模型数据。
2、请阐述UIViewController的生命周期,包括代码的执行顺序。答:当一个视图控制器被创建,并在屏幕上显示的时候。代码的执行顺序
// 视图显示在屏幕上的顺序
1、alloc 创建对象,分配空间。
2、init(initWithNibName)初始化对象,初始化数据。
3、viewload 从nib载入视图, 这一步不需要去干涉。除非没有使用xib文件创建视图。
4、viewDidLoad 加载完毕,可以进行自定义数据以及动态创建其他控件。
5、viewWillAppear 视图将出现在屏幕之前,马上这个视图即将显示在屏幕上。
6、viewDidAppear 视图已在屏幕上渲染完成。
// 视图将被从屏幕上移除的顺序
1、viewWillDisappear 视图将被从屏幕上移除之前执行。
2、viewDidDisappear 视图已经被从屏幕上移除。
3、dealloc 视图被销毁,此时需要在init和viewDidLoad中创建的对象进行释放。
4、viewDidUnload 出现内存警告在内存不足时执行,并对所有非当前显示的controller执行。本视图的所有子视图将被销毁,以释放内存,此时开发者需要手动对viewLoad、viewDidLoad中创建的对象释放内存。因为当这个视图再次显示在屏幕上的时候,viewLoad、viewDidLoad 再次被调用,以便再次构造视图。
五、论述题(20分)
微软的面试题 第8篇
一个求职者应聘微软的部门经理,面试官抛出一道考题:一天晚上,结伴同行的4个人要由一座小桥的一边到达另一边,过桥时必须用到手电筒,但手电筒只有一支,而小桥每次最多只可以通过两人。4个人的过桥时间分别为1分钟、2分钟、5分钟、10分钟。要让所有人安全通过小桥。最少需要多长时间?
听完,求职者立即埋头计算。来微软之前,他曾经在别的公司做过项目经理,他想,这完全是一个考查优化的问题。
聪明的人马上就能想到这样的方法:先让1、2过去,1回来,5、10再过去,2回来,1、2再过去,总共17分钟。
可是,求职者算来算去,总比标准答案的时间多。看他左右为难的样子,面试官问要不要提示,他立马说不,又埋头做了5分钟,结果还是没做出来。
面试官点评说:“其实你解题的思路很好,可惜你没有理解清楚我的问题,最关键的是,你没有问我手电筒能照多远?如果将手电筒放在桥中间,朝左朝右各能照到桥的一半,那就不需要来回在桥上走了。
最后,面试官重申:出这样一道面试题,当然不是为了考求职者的数学水平,而是有没有理清问题细节的能力。这对一个项目经理来说,是非常重要的素质。
ios工程师面试题 第9篇
美国上市公司
亿元级外企IT培训企业
100个iOS开发/设计程序员面试题汇总
无论是对于公司还是开发者或设计师个人而言,面试都是一项耗时耗钱的项目,本文作者Cameron Banga从编程、设计、App Store等各个方面对iOS开发者及设计师在面试时可能会遇到的问题进行了筛选与汇总。一方面,能够帮助HR在短时间内获取更多反馈信息,更好地甄选合适人选,而iOS开发者及设计师在寻找相关工作时,也可作为参考,为面试做好万全准备。
一、常见问题
你昨天/这周学习了什么?
你为什么热衷于软件开发?
你对哪一种控制系统比较熟悉?
是否参与过GitHub项目?
是否参与过GitHub或其他同类型网站的iOS开源项目?
请描述一下你的iOS应用开发流程。
是否熟知CocoaPods?它是什么?如何运行的?
请概括一下你对软件授权的理解,及其对软件开发的影响。
请概括一下你在构建iOS应用时的测试过程。iOS应用如何实现对其他语言、日期格式以及货币单位的支持?
请描述一下Instruments及其作用。
二、关于iOS技术
请解释一下Handoff是什么,并简述它是如何实现iOS、Mac/网页应用互通的。
iCloud包含了哪些技术与服务?
iOS扩展是指?能否列举一些热门或常见的范例?
HealthKit是什么?
HomeKit是什么?
Apple Pay是什么?能否描述一下如何在应用中使用Apple Pay?
请解释一下iOS应用沙盒机制。
VoiceOver是什么?请举例解释一下iOS中的辅助功能(Accessibility)。开发者如何使用这些功能?
iOS应用是如何实现后台多任务处理(Multitasking)的?
Game Center针对iOS游戏有哪些功能?
iBeacons是什么?
美国上市公司
亿元级外企IT培训企业
Cocoa/Cocoa Touch是什么?
请概括一下Core Audio,Core Data以及Core Location各是什么。它们对iOS应用有何意义?
请描述SpriteKit和SceneKit的作用。
Metal是什么?
响应链(Responder Chain)是什么?它是如何发挥作用的?
按钮和其他控制方式对哪些操作做出回应?
AppDelegate扮演着什么样的角色?
请解释一下NSUserDefaults。就你而言,你会如何在磁盘中对数组对象进行序列化?
你会如何储存用户的认证信息?
请问何为Keychain服务?
为什么移动设备上的缓存和压缩是不可或缺的?
请解释一下~/Documents,~/Library和~/tmp。iOS中的~属于什么目录?
AirPlay是如何运行的?换做是你,你会如何通过编程提高应用的实用性以及演示效果?
传感器,IO以及WiFi、拨号等连接方式如何在iOS平台上运作?它们有何利用价值?请扼要地谈谈你的观点。
iPad 2,iPad mini 1-3,iPad Retina,iPad Air 2,iPhone 5、5S、6以及6+在硬件性能方面有何差异?这对注重性能的应用有何限制?
三、关于编程
Cocoa Touch包含什么?不包含什么?
为什么Cocoa Touch的类名称是以两个大写字母开头的?
Swift和Objective-C分别是什么?两者相比有何不同之处,又有何联系?
为什么Optional在Swift语言中非常重要?
请解释一下NSError。在Swift中,什么情况下能使用NSError,什么情况下不能?
请说明如何使用Instancetype及其重要性。
在Swift中,什么时候该用let,什么时候该用var?
为什么map函数必不可少?该在什么情况下使用它?
你会选择什么工具来追踪Bug?
如果在Cocoa中发现一个Bug,你会如何处理?
如果应用的新版本出现了Regression的情况,该如何补救?如何防止用户在使用过程中遇到新的Bug?
Objective-C的类是怎么执行的?Objective-C Runtime是如何实现的?
美国上市公司
亿元级外企IT培训企业
iOS是如何提高安全性,保护用户隐私信息的?
应用可以下载并即刻显示数据。如何根据MVC来判断下载的最佳位置?
MVC对代码库(Codebase)的设计有何影响?
Controller Life-Cycle以及View Life-cycle分别有哪些调试方法?
iOS使用的是哪些设计模式(Design Patterns)?你的代码库使用的是哪些设计模式?
iOS提供哪些线程?如何充分利用这些线程?
请简要描述一下UIScrollView的执行过程。它是如何响应手势识别(Gesture Recognizer)、多点触控(Multi-Touch)和Run Loop的?
你认为iOS需要添加或改进哪些API?
四、关于界面
iPhone5、6、6+以及iPad Air 2的屏幕分辨率分别是多少?
分辨率的计算单位是什么?
请解释一下Interface Builder的作用以及NIB文件的概念。
iOS UI的图像储存类型是什么?
请描述一下Storyboard和标准NIB文件的差别。
设备状态栏(Device Status Bar)是什么?高度如何?是否透明?在手机通话或者导航状态下,它是如何显示的?
导航栏(Navigation Bar)是什么?能否拿出你的iPhone,指出你下载的哪些应用运用了导航栏?
选项卡(Tab Bar)和工具栏(Toolbar)分别是什么?两者之间有何共同点和不同点?
表视图(Table View)是什么?集合视图(Collection View)又是什么?
什么时候用“弹出(Popover)”属性最为合适?
Split-view Controller是什么?
选取器视图(Picker View)适合存放哪类内容?
应该在什么情况下使用标签、文本域和文本视图?
分段控件(Segmented Control)的作用是什么?
模态视图(Modal View)是什么?
iOS通知属于什么类型?
五、关于设计
iOS应用图标是指什么?请尽可能详细地描述一下。
最小尺寸和最大尺寸的应用图标分别是什么样子的?
应用图标能否包含透明的部分?
美国上市公司
亿元级外企IT培训企业
Newsstand的图标与常规应用有何不同?
请解释一下启动画面(Launch Images)。
自动布局(Auto Layout)的作用是什么?请概括一下它是如何运行的。
设计软件时为什么要加上动画?
请描述一下软件设计中的交互和Feedback有什么作用。
设计iPhone和iPad应用时,应分别考虑哪些因素?
请描述一下原型设计对于软件开发的意义。其作用是什么?
六、关于App Store
应用内购买(In-App Purchases)是怎么回事?IAP能够为用户带来哪些新体验?
你是否在App Store上发布过应用?能否概括一下过程?
iTunes Connect是什么?
Provisioning Profiles是指?
App ID是什么?
iOS的开发和发布签名证书有何异同?
如何使用TestFlight?通过Ad-hoc发布应用的话,该如何使用UUID?
应何时验证购买收据?
发布iAds(苹果平台广告)有哪些要求?
七、趣味问答
最近有没有开发什么好玩的东西?你最引以为豪的作品是什么?
谈一谈你常用的开发工具都有哪些优势?
你最敬佩的独立Mac或者iOS应用开发者是谁?
最喜欢什么项目?哪种类型的?
你觉得Xcode有哪些需要改进的地方?
iOS上你最喜欢哪些API?
是否有最中意的错误报告?
你最爱以哪种方式来检验一项新技术是否好用?
为什么词典被称作Dictionaries,而不是HashTable或HashMap?
如何面试ios工程师 第10篇
技术方面的技巧
第一:ABC(Always Be Coding),
一力降十惠,说的多不如做的多,所有工作都是这样,编程也不例外。你写过的代码越多,你的能力也就越高。但是,你必须做到有目的的编程,在写代码之前做到心中有数,明白自己的短板并且加强训练,坚持不懈的挑战自己的极限,努力使自己在各方面都很优秀。我强烈建议你把自己做过的每个项目不管是否完成都整理成作品集,在这里推荐GitHub,非常专业的代码分享社区,你可以把自己的作品集放到这。
第二:精通至少一种多重范式编程语言。
精通一门诸如C++这样的语言能让你从根本上理解编程,因为这类语言风格多样,如何写代码完全取决于你自己的风格,你能在一种语言里体会到不同风格的代码在执行上的差别,同时要达到这样的水平还需要大量的实战与练习。而且这类语言通常在各个社区中也是最活跃的板块,你可以很容易就找到志同道合的朋友来分享经验。其他也支持多风格编程的语言还有C#、Java、PHP、Python及Ruby。
关于C++的题外话:有一个跟著名的面试题,许多面试官都喜欢问,是这样:“如果把C++分为十个等级,1为最低,10为最高,你认为你自己处在哪一级?”希望上帝保佑那些回答9或者10的人,Bjarne Stroustrup估计也只会给自己打到8分甚至更低(此人为C++之父)。主要原因是这个语言经过这么多年无数大能的不懈努力,已经超级复杂,被称为主流设计语言中最复杂的一款也不为过,
第三:熟悉各种算法的优劣。
先看看这份关于各种算法的对比图,确定都理解了之后,试着把这些算法都用自己的方式写一遍。这样你就会对各种算法有更深刻的.理解。面试的时候这几乎是必考题哦。
第四:熟悉所有常用函数。
你最好把所有的常用函数都用自己使用的语言写一遍,不要依赖于现成的函数库,这样会加深你对各个函数以及语言本身的理解。试着快速写出下列函数:向量(动态数组)、链表、堆栈、队列、哈希映射、集合、优先级队列等等。
第五:要更务实。
临时抱佛脚早就没有用了,踏踏实实的打好基本功才是王道,花更多的时间去解决各种编程中遇到的问题,这里推荐多去TopCoder看看,那里有很多不错的资源。里边有各种案例可供学习,试着学习里边的思考方式来解决自己遇到的问题。我当初花了整整两个礼拜在TopCoder上,到最后我都能闭着眼一只手写出迪科斯彻算法,几乎能解决所有的图形问题。所做的不过是不断重复编程。这可能是Google最终要我的原因之一吧。Eric Schmidt说:“重复从不青睐祈祷者。”
第六:编程是最简单的。
这么多年的工作经验使我明白了一条,写代码是一个工程师所有工作中最简单明确的一部分。我常挂在嘴边的一句话是:“简单的就像写段代码一样。”我相信对于一个工程师来讲,事前准备和事后维护才是更艰难的工作。比如说,你需要在编程前计划好你需要写什么以及确保写好的代码能顺利运行。尽量让面试官知道,你不是一个只懂写代码的呆子。
机械工程师面试题 第11篇
---机械、自动化人才笔试题---
1.如果你是企业的研发主管,你觉得最重要的5个制度是什么?
2.如果你上司给你一个本来三个月完成的任务,现在要求你两个月内完成,给你提三个要求,你会提哪三个要求?
3.你觉得你有哪些特点可以让你更好的适应这份工作?就你申请的这个职位,你认为你还欠缺什么?
4.家人对你应聘这份工作知情吗?他们的意见如何?
机械设计人员笔试题
一、填空题:(1.5x20=30分)
1、汽缸的工作方式分为:_____________。
2、60°普通螺纹锁紧连接的有效螺纹圈数为________。
3、45号钢的含炭量大约为 _____________。
4、现代机械加工中正逐渐被淘汰的机床是 _____。
5、现代机械加工的发展趋势是 _______。
6、EDM的中文含义是 _______。
7、CNC的中文含义是 ________。
8、夹具实现的功能是 ________。
9、轴承按照摩擦方式可以分为:___________。
10、常用的热处理方法有:________________________
(请至少回答4种)
11、电机的输出功率与______________ 成正比。
12、常用的焊接方式有___________________ 等。(至少回答3种)
13、法兰与管体焊接时,为减少焊接变形应该在_______________ 开应力槽。
14、45#钢与1Cr18Ni9Ti焊接时的焊接性能 ___________________。
15、常见的铸造缺陷为:_______________ 等。
16、常用的电镀方式按照镀层材料可分为:_____________ 等。
17、钣金折弯加工后,折弯处附近会产生____________ 影响后道加工工序。
18、金属切削加工过程中加切削液的作用为:_________ ;切削加工时不加切削液的金属材料是 ___________。
19、在笛卡尔直角坐标系中,右手拇指、食指和中指所指的方向分别代表_________,绕各轴正方向___________ 旋转的方向为旋转的正方向。
20、常用的三种机械传动机构分别为:_______________。
二、简答题:(20分)
齿轮减速机构无法被电子调速机构完全替代的原因。
答:
机械设计人员笔试题 答案
一、填空题:(1.5x20=30分)
1、汽缸的工作方式分为:___吸气冲程、压缩冲程、做功冲程、排气冲程。
2、60°普通螺纹锁紧连接的有效螺纹圈数为__3圈______。3-4圈 按公式:(0.8-1.2)D/T计算 D是大径 T是螺距3、45号钢的含炭量大约为 __0.45%_______。
4、现代机械加工中正逐渐被淘汰的机床是 __组合机床___。普通机床
5、现代机械加工的发展趋势是 ____加工过程自动化___。全球化、网络化、虚拟化、自动化、绿色化
6、EDM的中文含义是 __电火花加工_____。
7、CNC的中文含义是 __数控加工中心______。
8、夹具实现的功能是 ____将工件固定在准确位置上____。定位、装夹、保证精度、提高效率
9、轴承按照摩擦方式可以分为:_滚动轴承和滑动轴承__________。
10、常用的热处理方法有:1退火及正火 2淬火3 回火及时效、4表面淬火、5化学热处理6 形变热处理。
(请至少回答4种)
11、电机的输出功率与___转速___________ 成正比。转距和转速
12、常用的焊接方式有___熔焊、压焊、钎焊_ 等。(至少回答3种)电焊、氩焊、钎焊
13、法兰与管体焊接时,为减少焊接变形应该在_______________ 开应力槽。法兰焊接的背面 14、45#钢与1Cr18Ni9Ti焊接时的焊接性能 ___________________。前者较差、后者良好
15、常见的铸造缺陷为:_砂眼、气孔 等。砂眼、气孔、缩孔、冷隔、夹渣、裂纹
16、常用的电镀方式按照镀层材料可分为:_镀铜、镀锌、镀铬等。镀铬、镀镍、镀铜、镀锌、金、银、等等
17、钣金折弯加工后,折弯处附近会产生__压痕 影响后道加工工序。应力集中
18、金属切削加工过程中加切削液的作用为:_冷却、润滑、排屑 ;切削加工时不加切削液的金属材料是 ___铜_____铸铁___。
19、在笛卡尔直角坐标系中,右手拇指、食指和中指所指的方向分别代表__X、Y、Z轴_______,绕各轴正方向逆时针 旋转的方向为旋转的正方向。顺时针
20、常用的三种机械传动机构分别为:链传动、带传动、齿轮传动。
二、简答题:(20分)
齿轮减速机构无法被电子调速机构完全替代的原因。
齿轮减速机构能传递较大扭矩而电子调速机构不能。在扭矩大的情况下可以用齿轮传动配一个相对较小的电机可以实现减速
前端工程师面试题 第12篇
1.对WEB标准以及W3C的理解与认识
标签闭合、标签小写、不乱嵌套、提高搜索机器人搜索几率、使用外链css和js脚本、结构行为表现的分离、文件下载与页面速度更快、内容能被更多的用户所访问、内容能被更广泛的设备所访问、更少的代码和组件,容易维护、改版方便,不需要变动页面内容、提供打印版本而不需要复制内容、提高网站易用性;
2.xhtml和html有什么区别
HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的置标语言
最主要的不同:
XHTML 元素必须被正确地嵌套。
XHTML 元素必须被关闭。
标签名必须用小写字母。
XHTML 文档必须拥有根元素。
3.Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
用于声明文档使用那种规范(html/Xhtml)一般为 严格 过度 基于框架的html文档
加入XMl声明可触发,解析方式更改为IE5.5 拥有IE5.5的bug
4.行内元素有哪些?块级元素有哪些?CSS的盒模型?
块级元素:div p h1 h2 h3 h4 form ul
行内元素: a b br i span input select
Css盒模型:内容,border ,margin,padding
5.CSS引入的方式有哪些? link和@import的区别是?
内联 内嵌 外链 导入
区别 :同时加载
前者无兼容性,后者CSS2.1以下浏览器不支持
Link 支持使用javascript改变样式,后者不可
6.CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高?
标签选择符 类选择符 id选择符
继承不如指定 Id>class>标签选择
后者优先级高
7.前端页面有哪三层构成,分别是什么?作用是什么?
结构层 Html 表示层 CSS 行为层 js
8.css的基本语句构成是?
选择器{属性1:值1;属性2:值2;}
9.你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?
Ie(Ie内核) 火狐(Gecko) 谷歌(webkit) opear(Presto)
10.写出几种IE6 BUG的解决方法
1.双边距BUG float引起的 使用display
2.3像素问题 使用float引起的 使用dislpay:inline -3px
3.超链接hover 点击后失效 使用正确的书写顺序 link visited hover active
4.Ie z-index问题 给父级添加position:relative
5.Png 透明 使用js代码 改
6.Min-height 最小高度 !Important 解决’
7.select 在ie6下遮盖 使用iframe嵌套
8.为什么没有办法定义1px左右的宽度容器(IE6默认的行高造成的,使用over:hidden,zoom:0.08 line-height:1px)
11.
标签上title与alt属性的区别是什么?
Alt 当图片不显示是 用文字代表。
Title 为该属性提供信息
12.描述css reset的作用和用途。
Reset重置浏览器的css默认属性 浏览器的品种不同,样式不同,然后重置,让他们统一
13.解释css sprites,如何使用。
Css 精灵 把一堆小的图片整合到一张大的图片上,减轻服务器对图片的请求数量
14.浏览器标准模式和怪异模式之间的区别是什么?
盒子模型 渲染模式的不同
使用 window.top.document.compatMode 可显示为什么模式
15.你如何对网站的文件和资源进行优化?期待的解决方案包括:
文件合并
文件最小化/文件压缩
使用CDN托管
缓存的使用
16.什么是语义化的HTML?
直观的认识标签 对于搜索引擎的抓取有好处
17.清除浮动的几种方式,各自的优缺点
1.使用空标签清除浮动 clear:both(理论上能清楚任何标签,,,增加无意义的标签)
2.使用overflow:auto(空标签元素清除浮动而不得不增加无意代码的弊端,,使用zoom:1用于兼容IE)
3.是用afert伪元素清除浮动(用于非IE浏览器)
Javascript
1.javascript的typeof返回哪些数据类型
Object number function boolean underfind
2.例举3种强制类型转换和2种隐式类型转换?
强制(parseInt,parseFloat,number)
隐式(== - ===)
3.split join() 的区别
前者是切割成数组的形式,后者是将数组转换成字符串
4.数组方法pop() push() unshift() shift()
Push()尾部添加 pop()尾部删除
Unshift()头部添加 shift()头部删除
5.事件绑定和普通事件有什么区别
6.IE和DOM事件流的区别
1.执行顺序不一样、
2.参数不一样
3.事件加不加on
4.this指向问题
7.IE和标准下有哪些兼容性的写法
Var ev = ev || window.event
document.documentElement.clientWidth || document.body.clientWidth
Var target = ev.srcElement||ev.target
8.ajax请求的时候get 和post方式的区别
一个在url后面 一个放在虚拟载体里面
有大小限制
安全问题
应用不同 一个是论坛等只需要请求的,一个是类似修改密码的
9.call和apply的区别
Object.call(this,obj1,obj2,obj3)
Object.apply(this,arguments)
10.ajax请求时,如何解释json数据
使用eval parse 鉴于安全性考虑 使用parse更靠谱
11.b继承a的方法
12.写一个获取非行间样式的函数
function getStyle(obj,attr,value)
{
if(!value)
{
if(obj.currentStyle)
{
return obj.currentStyle(attr)
}
else
{
obj.getComputedStyle(attr,false)
}
}
else
{
obj.style[attr]=value
}
}
复制代码
13.事件委托是什么
让利用事件冒泡的原理,让自己的所触发的事件,让他的父元素代替执行!
14.闭包是什么,有什么特性,对页面有什么影响
闭包就是能够读取其他函数内部变量的函数。
blog.csdn.net/gaoshanwudi/article/details/7355794 此链接可查看(问这个问题的不是一个公司)
15.如何阻止事件冒泡和默认事件
canceBubble return false
16.添加 删除 替换 插入到某个接点的方法
obj.appendChidl()
obj.innersetBefore
obj.replaceChild
obj.removeChild
17.解释jsonp的原理,以及为什么不是真正的ajax
动态创建script标签,回调函数
Ajax是页面无刷新请求数据操作
18.javascript的本地对象,内置对象和宿主对象
本地对象为array obj regexp等可以new实例化
内置对象为gload Math 等不可以实例化的
宿主为浏览器自带的document,window 等
19.document load 和document ready的区别
Document.onload 是在结构和样式加载完才执行js
Document.ready原生种没有这个方法,jquery中有 $().ready(function)
20.”==”和“===”的不同
前者会自动转换类型
后者不会
21.javascript的同源策略
一段脚本只能读取来自于同一来源的窗口和文档的属性,这里的同一来源指的是主机名、协议和端口号的组合
22.编写一个数组去重的方法
function oSort(arr)
{
var result ={};
var newArr=[];
for(var i=0;i
{
if(!result[arr[i]])
{
newArr.push(arr[i])
result[arr[i]]=1
}
}
return newArr
}
复制代码
23.排序算法
快速排序function oSort(arr)
{
if(arr.length<=1)
{
return arr
}
var left=[];
var right=[];
var oNum = Math.floor(arr.length/2);
var oNumVode = arr.splice(oNum,1);
for(var i=0;i
{
if(arr[i]
{
left.push(arr[i])
}
else
{
right.push(arr[i])
}
}
return oSort(left).concat([oNumVode],oSort(right))
}
冒泡排序 var array = [5, 4, 3, 2, 1];
var temp = 0;
for (var i = 0; i < array.length; i++)
{
for (var j = 0; j < array.length - i; j++)
{
if (array[j] >array[j + 1])
{
temp = array[j + 1];
array[j + 1] = array[j];
array[j] = temp;
}
}
}
复制代码