IOS开发工程师面试题

时间:2019-05-13 12:40:33下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《IOS开发工程师面试题》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《IOS开发工程师面试题》。

第一篇:IOS开发工程师面试题

湖南路线图网络科技有限公司 技术中心 内部资料

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

中关村在线iOS开发工程师面试题

1.有n个人围坐成一圈(假设他们的编号沿顺时针方向依次为1到n),编程序,使用数组来存放各数据(人员编号),而后从1号人员开始数起(沿顺时针方向),当数到k时(其中k>1由用户输入指定),则该号人员被“淘汰出局”;接着仍沿顺时针方向从被淘汰出局者的下一人员又重新从1开始数起,数到k后,淘汰第2个人;如此继续,直到最后剩下一个人时停止。请输出先后被“淘汰”的人的编号。

2.编码实现:

1)由键盘上输入任意n个符号,输出它的全排列。

2)找出所有从m个元素中选取n(n<=m)元素的组合。

3.要求:描述越全面越好,最好有部分代码实现。

1)试描述iOS的网络获取机制。

提示:1.网络获取与数据解析的过程

2.post与get的用法3.同步与异步处理4.关于Webkit

2)试简述对于缓存机制的理解。

提示:1.应用缓存机制的情况

2.数据缓存与图片缓存如何处理3.缓存机制具体如何实现4.在程序进入后台和后台唤醒时的缓存处理

第三篇:iOS面试题整理

1.用#define定义一个宏,表示一年中的秒数。

@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中每一行都缓存图片的处理,如何处理才能在滑动时不会出现等

待的现象。

22.

第四篇:100个iOS开发设计程序员面试题汇总

www.xiexiebang.com

美国上市公司

亿元级外企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是什么?

www.xiexiebang.com

美国上市公司

亿元级外企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是如何实现的?

www.xiexiebang.com

美国上市公司

亿元级外企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应用图标是指什么?请尽可能详细地描述一下。

最小尺寸和最大尺寸的应用图标分别是什么样子的?

应用图标能否包含透明的部分?

www.xiexiebang.com

美国上市公司

亿元级外企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培训机构,更多关于iOS的内容欢迎在线咨询!

第五篇:iOS开发高级程序员面试题-答案

一、判断题(每题2分,共20分)

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分)

请针对正泰中自智慧水务APP的需求(见现场展示的原型),论述您的开发思路和使用的开发技术。

下载IOS开发工程师面试题word格式文档
下载IOS开发工程师面试题.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    如何学习iOS开发

    如何学习iOS开发 由于iphone手机带来的手机应用狂潮,现在很多人都希望从事这块的开发。很多初学者可能会问,怎么样才能学好iOS开发,我们要看什么书呢,还是什么视频,其实这些都不......

    如何学习ios开发

    如何学习ios开发怎么学习ios开发?这是很多想学ios开发,又没有什么基础的同学遇到的疑问,针对这些问题,我想说说自己的看法,当然,希望我的这些经验能够帮到大家。1 、信念,一个没有......

    JAVA网站开发工程师面试题

    JAVA_WEB开发人员面试题及答案面试人:面试时间: 一.选择题(每题1分,共20分) 1. jsp 有几个内置对象?( c )(单选) A 5个B6个C9个D8个 2. 在JAVA中,如何跳出当前的多重嵌套循环?(ab) (多选) A......

    web开发工程师面试题(含答案)(5篇)

    Web开发工程师试题 姓名:参与web项目个 一、 选择题 1、提供Java存取数据库能力的包是( ) A. java.sqlB.java.awtC.java.langD.java.swing 答案:A2、以下语句中,没有创建出字符串对象......

    学习iOS开发心得

    学习iOS开发心得 据说,今年是高校扩招以来,大学毕业生最多的一年,将超700万,这么多大学生即将走入工作岗位。因此被人们戏称为史上2014“最难就业年”。 我在今年7月份也即将拿......

    分享:学习iOS开发心得

    分享:学习iOS开发心得 据说,今年是新中国成立以来,应届毕业生的人数高达700万,这么多大学生即将走入工作岗位。因此被人们戏称为“最难就业季”。 我在今年7月份也即将拿到沉甸......

    ios工程师自我介绍(大全5篇)

    通过大学几年的理论跟实践,终于准备踏进社会做一个真正的IOS工程师,那么第一个难关就是面试了。下面写写帮文库小编为你带来ios工程师自我介绍的内容,希望你们喜欢。关于ios工......

    iOS开发培训方案201209

    iOS开发培训方案(2012.9-2012.10)1. 总体安排每周1.5天,共8周,总计12天。将8周培训时间分为3个阶段: 第一阶段:时间1周,基础准备阶段,iOS及其周边介绍(iOS生态圈,App Store等),iOS开发环......