三年经验高级ios工程师社招面试经历

1. 手撕代码。牛客题霸上的原题,可以去看看:NC100 将字符串转化为整数

2. Swift的主要特征和优缺点是什么?

3. 什么是iOS应用程序,您的代码适合哪里?

4. iOS中的内存管理如何处理?

Swift使用自动引用计数(ARC)。从概念上讲,这在Swift中与在Objective-C中是相同的。ARC会跟踪对类实例的强引用,并在您将类实例(引用类型)的实例分配或取消分配给常量,属性和变量时相应地增加或减少其引用计数。它释放由引用计数降至零的对象使用的内存。ARC不会增加或减少值类型的引用计数,因为在分配值时,它们会被复制。默认情况下,如果没有另外指定,则所有引用都是强引用。


5. 什么是MVC

MVC代表模型视图控制器。这是Apple选择作为iOS应用程序开发的主要方法的软件设计模式。模型代表应用程序数据;视图在屏幕上绘制事物;控制器管理模型和视图之间的数据流。模型和视图从不直接相互通信,而依赖于控制器来协调通信。

6. 您对Singleton了解多少?您将在哪里使用哪一个?

7. 代表和KVO有什么区别?

两者都是在对象之间建立关系的方式。委托是一对一关系,其中一个对象实现委托协议。另一个使用协议定义的方法向其发送消息。KVO是一种多对多关系,其中一个对象广播一条消息,而一个或多个其他对象侦听该消息并做出反应。KVO不依赖协议。KVO是反应式编程(RxSwiftReactiveCocoa等)的 第一步和基本步骤


8. iOS应用程序通常使用哪些设计模式?

9. 除了您知道的常见可可图案以外,还有哪些设计图案?

10. 解释并显示SOLID原理示例?

11. 您在iOS上实现存储和持久性有哪些选择?

通常,有以下几种按简单到复杂的顺序存储数据的方式:

•内存中的数组,字典,集合和其他数据结构

NSUserDefaults /钥匙串

•文件/磁盘存储

•核心数据,领域

SQLite


12. iOS上的网络和HTTP有哪些可用选项?

13. 如何以及何时在iOS上序列化和映射数据?

14. 在iOS上布置UI有哪些选项?

15. 如何优化动态大小的表或集合视图的滚动性能?

16. 您将如何在iOS上执行异步任务?

iOS上,如今,异步任务的首选解决方案是NSOperationsGCD块。Grand Central Dispatch是一项可以与多个后台队列一起使用的技术,该后台队列又可以找出哪个后台线程来处理工作。最主要的是,它是从您那里抽象出来的,因此您不必担心它。NSOperationGCD之上的OOP抽象,它允许您执行更复杂的异步操作,但是使用NSOperation可以实现的一切都可以与GCD一起实现。许多可可框架在后台使用GCD/NSOperation


17. 您如何管理依赖关系?

18. 您如何在iOS上调试和分析代码?

19. 您有TDD经验吗?您如何在iOS上进行单元和UI测试?

20. 模拟,存根和假货之间有何不同?

21. 您是否编写评论和/或配对程序的代码?

22. 什么是FRP(功能性反应式编程)及其在iOS平台中的位置?

功能响应式编程(FRP)是一种声明式编程范例,它结合了功能编程和响应式(异步数据流编程)范例。这是一种声明式的编程风格,您可以声明代码的工作方式,而不是声明代码的工作方式。FRP的反应性组件使我们能够引入和描述时间的概念,这在纯函数式编程中很难使用。FRP通常可以帮助我们处理用户输入和iOS应用程序的异步特性;用户输入发生在某个时间点,联网将在将来的某个时间结束,等等。


23. 您知道哪种iOS架构可扩展吗?

#iOS工程师##面经##社招#
全部评论
顶一下
1 回复 分享
发布于 2022-02-15 18:22
老哥最后去哪个公司
点赞 回复 分享
发布于 2022-02-22 23:08

相关推荐

ProMonkey2024:5个oc?厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了(别的帖子偷来的,现学现卖😋)
点赞 评论 收藏
分享
评论
5
36
分享
牛客网
牛客企业服务