首页 > 三年经验高级ios工程师社招面试经历
头像
全力出击
编辑于 2020-11-19 15:34
+ 关注

三年经验高级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架构可扩展吗?

更多模拟面试

全部评论

(2) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期精华帖

热门推荐