美国上市公司100个iOS开发/设计程序员面试题汇总

2023-10-19
来源:网络整理

第1部分:100道iOS开发设计程序员面试题汇总

美国上市公司

十亿美元外资IT培训企业

100道iOS开发/设计程序员面试题汇总

无论是对于公司还是个人开发者、设计师来说,面试都是一个耗时且成本高昂的项目。 本文作者从编程、设计、App 等各个方面分析了 iOS 开发者和设计师在面试时可能遇到的问题。 对收到的问题进行了筛选和总结。 一方面可以帮助HR在短时间内获得更多的反馈信息,更好地选择合适的候选人。 也可以作为iOS开发者和设计师在寻找相关工作时为面试做好充分准备的参考。

1. 常见问题

昨天/本周你学到了什么?

您为什么热衷于软件开发?

您熟悉哪种控制系统?

你参与过项目吗?

您是否参与过其他类似网站的 iOS 开源项目?

请描述一下您的 iOS 应用程序开发过程。

你熟悉吗? 它是什么? 它是如何工作的?

请概述您对软件许可及其对软件开发的影响的理解。

请概述构建 iOS 应用程序时的测试流程。 iOS 应用程序如何支持其他语言、日期格式和货币单位?

请描述它以及它的作用。

2.关于iOS技术

请解释它是什么,并简要描述它如何实现 iOS、Mac/Web 应用程序的互操作性。

包括哪些技术和服务?

什么是 iOS 扩展? 您能列出一些流行或常见的例子吗?

它是什么?

它是什么?

什么是付费? 您能描述一下如何在应用程序中使用 Pay 吗?

请解释一下iOS应用程序沙箱机制。

它是什么? 请举例说明iOS中的辅助功能()。 开发者如何使用这些功能?

iOS应用程序如何实现后台多任务处理()?

Game对于iOS游戏有哪些功能?

它是什么?

美国上市公司

十亿美元外资IT培训公司

/ 什么是?

请概括一下什么是Core、Core Data 和Core。 它们对于 iOS 应用程序有什么意义?

请描述 和 的作用。

它是什么?

什么是响应链 ( )? 它是如何工作的?

按钮和其他控件会响应哪些操作?

它发挥什么作用?

请解释。 在你的情况下,你将如何序列化磁盘中的数组对象?

您将如何存储用户身份验证信息?

什么是服务?

为什么移动设备上的缓存和压缩至关重要?

请解释一下 ~/、~/ 和 ~/tmp。 iOS 中 ~ 属于什么目录?

它是如何工作的? 如果是你,你会如何通过编程来提高应用的实用性和演示效果?

传感器、IO、WiFi、拨号等连接方式在iOS平台上是如何工作的? 它们的使用价值是什么? 请简要谈谈您的看法。

iPad 2、iPad mini 1-3、iPad、iPad Air 2、5、5S、6 和 6+ 之间的硬件性能有何差异? 这对于注重性能的应用程序有什么限制?

3.关于编程

包括什么? 不包括什么?

为什么类名以两个大写字母开头?

和-C有什么区别? 两者有何区别以及有何联系?

为什么它在语言中很重要?

请解释。 什么情况下可以使用,什么情况下不可以使用?

请解释如何使用它以及为什么它很重要。

在 中,什么时候应该使用 let,什么时候应该使用 var?

为什么地图功能必不可少? 什么情况下应该使用?

您会选择什么工具来跟踪错误?

如果您发现其中存在错误,您将如何处理?

如果出现新版本的应用程序,如何补救? 如何避免用户在使用过程中遇到新的Bug?

-C类是如何执行的? -C是如何实现的?

问答系统开源_小程序开发问答相关的it服务_问题问答程序

美国上市公司

十亿美元外资IT培训企业

iOS如何提高微信的安全性,保护用户的隐私信息?

该应用程序立即下载并显示数据。 如何基于MVC确定最佳下载位置?

MVC 对代码库的设计有什么影响?

Life-和View Life-的调试方法有哪些?

iOS 使用什么设计模式? 您的代码库使用什么设计模式?

iOS 提供哪些线程? 如何充分利用这些线程呢?

请简要介绍一下实施过程。 它如何响应手势识别 ( )、多点触摸 (-) 和运行循环?

您认为 iOS 上需要添加或改进哪些 API?

4.关于界面

、6、6+ 和 iPad Air 2 的屏幕分辨率分别是多少?

分辨率的计算单位是什么?

请解释一下它的功能和NIB文件的概念。

iOS UI 的图片存储类型是什么?

请描述与标准 NIB 文件的区别。

什么是设备状态栏(Bar)? 它的高度是多少? 是透明的吗? 打电话或导航时如何显示?

什么是导航栏? 您能否向我展示您的应用程序并指出您下载的哪些应用程序使用了导航栏?

什么是选项卡栏和工具栏? 它们之间有什么相同点和不同点?

什么是表视图(View)? 什么是集合视图(View)?

什么时候最适合使用“pop()”属性?

什么是-view?

选择器视图适合存储什么类型的内容?

何时应使用标签、文本字段和文本视图?

分段控制( )的作用是什么?

什么是模态视图(View)?

它们是什么类型的 iOS 通知?

5.关于设计

什么是 iOS 应用程序图标? 请尽可能详细地描述它。

最小和最大尺寸的应用程序图标是什么样的?

应用程序图标可以包含透明部分吗?

美国上市公司

十亿美元外资IT培训企业

这些图标与普通应用程序有何不同?

请解释一下启动画面 ( )。

自动布局(Auto)的作用是什么? 请概述它是如何工作的。

为什么设计软件时要添加动画?

请描述交互及其在软件设计中的作用。

分别设计iPad应用程序时应考虑哪些因素?

请描述原型设计对于软件开发的重要性。 功能是什么?

6. 关于应用程序

什么是应用内购买(In-App)? IAP能为用户带来哪些新体验?

您曾经在App上发布过应用程序吗? 您能概述一下整个过程吗?

它是什么?

指的是?

什么是应用程序ID?

iOS 开发和发布签名证书有何异同?

如何使用? 通过Ad-hoc发布应用程序时如何使用UUID?

何时应验证购买收据?

发布iAds(苹果平台广告)有什么要求?

7. 有趣的问题和答案

最近有开发什么有趣的东西吗? 你最引以为傲的工作是什么?

谈谈你常用的开发工具的优点?

您最欣赏的独立 Mac 或 iOS 应用程序开发人员是谁?

你最喜欢的项目是什么? 哪种类型?

您认为哪些方面需要改进?

iOS 上您最喜欢的 API 是什么?

您有最喜欢的错误报告吗?

问答系统开源_小程序开发问答相关的it服务_问题问答程序

您最喜欢的测试新技术是否有效的方法是什么?

字典为什么叫,而不叫?

以上内容来自大奈iOS培训机构。 更多iOS相关信息欢迎在线咨询!

第 2 部分:iOS 开发高级程序员面试问题-答案

1.判断题(每题2分,共20分)

1.能够绑定多个数据源。 (错误的)

2. 一个可以管理多个。 (正确的)

3. -C类可以有多重继承。 (错误的)

4.-c类中只有两种方法,静态方法和实例方法。 (正确的)

5、使用时,根据流程实例化单例对象。 (正确的)

6、使用类别添加方法时,不能与原类中的方法名称冲突。 (错误的)

7. 指视图在自身坐标系中的位置和大小。 (错误的)

8.它是方法和组合的名称。 (错误的)

9. ARC是编译功能,而不是运行时功能。 编译时,编译器会自动添加代码。 (正确的)

10. iOS4开始支持全屏浏览,Siri支持普通话。 (正确的)

2.填空(每空2分,共20分)

1. iOS是用-C语言编写的。 使用这种语言开发的是一个强大的用户界面工具包,这也是iOS的核心。

2. 数组在内存中连续存储元素。 由于每个元素占用相同的内存,因此可以通过下标快速访问数组中的任何元素。 链表正好相反,元素不是按顺序存储在内存中,而是通过元素中存在的指针链接在一起。

3、发送同步请求,程序将停止用户交互,直到服务器完成数据返回后才进行下一步。 发送异步请求不会阻塞主线程,而是会创建一个新的线程来操作,然后程序可以继续运行。

4、放入当前池即可。 当它被释放时,里面的所有东西都会被调用。

5、-C导入头文件的关键字,#用于包含系统头文件,#””用于包含用户头文件。

3.简述题(每题4分,共20分)

1. 和 之间有什么区别,在什么情况下使用?

答:消息的发送者()通知接收者()一个事件即将发生,然后发送者对该事件做出响应。 该机制允许接收者改变发送者的行为。 通常发送者和接收者之间的关系是直接的一对多关系。

:消息的发送者通知接收者某个事件已经发生或即将发生,仅此而已,接收者无法反过来影响发送者的行为。 通常发送者和接收者之间的关系是间接的多对多关系。

2、C中创建线程的方法是什么? 如果代码在主线程中执行的话,方法是什么? 如果想延迟执行代码,有什么方法呢?

答:创建线程有三种方式:使用创建、使用GCD、使用子类化、然后添加。

在主线程上执行代码:

如果你想延迟执行代码,可以使用:::。

3、iOS有哪些数据持久化方式?

答:四种:属性列表、对象归档、核心数据。

4.-C如何管理内存? 告诉我们您的意见和解决方案?

答:-C中内存管理的方式主要有3种:ARC(自动内存计数)、手动内存计数、内存池。 解决办法是:谁持有它,就释放它。

5. 如何对iOS设备进行性能测试?

答案:->->时间。

4、问答(每题10分,共20分)

1.什么是MVC,为什么使用MVC,有什么好处? 描述如何在iOS SDK中实现MVC开发模式。

答:MVC就是:模型()、视图(View)和控制()。

():“数据模型”用于封装与应用程序的业务逻辑以及如何处理数据相关的数据。 “模型”可以直接访问数据,例如数据库。 视图:视图层可以有目的地显示数据。

():控制器在不同层次之间起到组织作用,用于控制应用程序的流程。 对于iOS SDK来说,所有的View都在视图层,视图层应该独立于模型层,由视图控制层控制。 所有用户数据都在模型层中,并且应该独立于视图。 都是控制层,负责控制视图和访问模型数据。

2.请解释一下生命周期,包括代码的执行顺序。 答:当视图控制器创建并显示在屏幕上时。代码执行顺序

//视图在屏幕上显示的顺序

1.创建对象并分配空间。

2. init()初始化对象并初始化数据。

3. 从笔尖加载视图。 无需干预此步骤。 除非视图不是使用 xib 文件创建的。

4.加载完成后,可以自定义数据,动态创建其他控件。

5. 视图将出现在屏幕上,视图将立即显示在屏幕上。

6. 视图已呈现在屏幕上。

// 视图从屏幕上删除的顺序

1. 在视图从屏幕上删除之前执行。

2. 视图已从屏幕上删除。

3.视图被破坏。 这时,在init中创建的对象必须被释放。

4、如果出现内存警告,则在内存不足时执行,并对所有非当前显示的项目执行。 该视图的所有子视图都将被销毁以释放内存。 这时候开发者就需要手动释放在. 因为当这个视图再次显示在屏幕上时,会再次调用 , 来重新构造视图。

5.论述题(20分)

请您根据正泰中字智能水务APP的需求,讨论您的开发思路和所采用的开发技术(参见现场展示的原型)。

第三部分:IOS开发工程师面试题

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

iOS开发工程师面试题(45分钟)

小程序开发问答相关的it服务_问题问答程序_问答系统开源

1、请详细描述一下生命周期?

2.OC中类属性weak的作用是什么?

3.OC中的SEL是什么,作用是什么?

4. 如何访问OC字典或数组中的基本数据类型值? 如何将字典或数组中的值转换为基本数据类型的值?

5.IOS中接口之间传值的方式有哪些?

6.OC中有哪些通知类型? 请简单描述一下苹果的推送流程?

7.OC中浅拷贝和深拷贝有什么区别?

8.什么是? 如何使用?

9、谈谈OC中的内存管理方法和流程,以及使用ARC的注意事项,以及ARC中如何工作。

过程中使用非ARC类和开源框架?

10、简述OC的扩展和分类的功能和区别

11.OC中多线程的实现方法有哪些? 如何在异步线程中使用定时器?

12、请举例说明常用的网络请求开源框架、JSON解析开源框架、UI开源框架。

13、请详细描述如何让App的界面适配IOS6、IOS7、

14.请列出你所知道的设计模式以及各种设计模式的特点。

第四部分:iOS面试题整理

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

@用户

{ *姓名;}

@结尾

a) self.name=@”abc” 和 name=@”abc” 有什么区别?

b) self.name=[[ ]:@”abc”]; 中的名字是什么?

c) 完成:(*) 方法

d) 这里,self.name 用于访问 name 属性。 您还可以使用其他方法来访问名称属性。

性别?

2.什么可以定制?

3.视图有什么区别。 并查看。?

4. iOS 中的内存管理是如何进行的?

5.简述分类和继承的区别。

6.简述和的区别。

7、简述堆和栈的区别。

8. 简要描述、KVO 和差异。

9. 使用预处理指令 # 声明 MAX(X,Y) 和 MIN(X,Y)。

10.尝试写作

11. 对于一个字节(8bit)变量,找出其二进制中“1”的个数小程序开发问答相关的it服务,并要求执行算法。

尽可能高效地运行。

12、求两个正整数的最大公约数,要求算法的执行效率尽可能高。

13、如何判断两个单向链表是否相交?

14.你能找到满足以下条件的9位数字吗:

a) 该号码包括1-9 9个号码;

b) 这个9位数字的前n位可以被n整除。 如果这个数表示为,则 ab

它能被2整除,abc能被3整除……它能被9整除。

15.告诉我和的区别?

16.如何下载图片?

17.微博认证?

18.版本扩展?

19. 程序调试?

20..(点)运算符?

21. 21. 中的每一行都缓存图像处理。 如何处理,使其在滑动时不出现等。

等待现象。

22。

第五部分:中关村在线iOS开发工程师面试题2

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

1、有n个人围坐一圈(假设他们的编号按顺时针方向为1到n),编程,用数组存储每个数据(人员编号),然后从1号人开始计数(沿顺时针方向) )顺时针方向),当计数达到k(其中k>1由用户输入指定)时,具有该数字的人被“淘汰”; 然后顺时针方向下一个人再从1开始向上计数,数到k后,淘汰第二个人; 继续下去,直到只剩下一个人。 请依次输入被“淘汰”的人数。

2、编码实现:

1)在键盘上输入任意n个符号,并输出其全排列。

2) 找出所有n(n

分享