2019年面试必备:iOS 面试题大全(附答案)

article/2025/8/20 1:32:17

这个栏目将持续更新–请iOS的小伙伴关注!

1、多线程的应用
2、GCD实现多个请求都完成之后返回结果
3、A、B两个int数组,得到A数组中B数组不包含的元素
4、事件传递链,页面上一个按钮,按钮和它的superView有一样的action,为什么只执行button的action?
5、runtime的应用
6、array中加入对象,对象的retainCount会加1 如何是的对象自己管理自己的生命周期
7、bugly的卡顿监控原理
8、如何架构一个app
9、c中,malloc对象,传入了size,free只需要指针,这是为什么?
10、数据库选择原因(realm 、coreData、FMDB、Sqlite)
11、数据库做过哪些优化
12、脚本打包原理
13、app运行过程中,同时最多有几个线程,怎么实现的高并发
14、iOS应用导航模式有哪些?
15、iOS中持久化方式有哪些?
16、iOS单元测试框架有哪些?
17、iOS atomatic nonatomic区别和理解
18、#import 跟 #include 有 什 么 区 别 , @class 呢 , #import<> 跟 #import” ”有什么区别?
19、Object-c 的类可以多重继承么?可以实现多个接口么?Category 是什 么?重写一个类的方式用继承好还是分类好?为什么?
20、属性 readwrite,readonly,assign,retain,copy,nonatomic 各是 什么作用,在那种情况下用?
21、对于语句 NSString*obj=[[NSDataalloc]init];obj 在编译时和运行时 分别时什么类型的对象?
22、常见的 objective-c 的数据类型有那些, 和 C 的基本数据类型有什 么区别?如:NSInteger 和 int
23、Objective-C 如何对内存管理的,说说你的看法和解决方法?
24、原子(atomic)跟非原子(non-atomic)属性有什么区别?
25、ObjectC 中创建线程的方法是什么?如果在主线程中执行代码,方 法是什么?如果想延时执行代码、方法又是什么?
26、浅复制和深复制的区别?
27、类别的作用?继承和类别在实现中有何区别?
28、类别和类扩展的区别
29、我们说的 OC 是动态运行时语言是什么意思?
30、类变量的@protected,@private,@public,@package,声明各有什么 含义?
31、简述 OC 中内存管理机制。与 retain 配对使用的方法是 dealloc 还 是 release,为什么?需要与 alloc 配对使用的方法是 dealloc 还是 release,为什么…
32、说说响应链
33、线程是什么?进程是什么?二者有什么区别和联系?
34、RunLoop 是什么?
35、简述你对 UIView、UIWindow 和 CALayer 的理解
36、iOS 的动态性
37、谈谈对性能优化的看法,如何做?
38、NSAutoreleasePool 是怎么工作的?
39、什么情况使用 weak 关键字,相比 assign 有什么不同?
40、runtime 如何实现 weak 属性?
41、怎么用 copy 关键字?
42、用 @property 声明的 NSString(或 NSArray,NSDictionary)经常使用 copy 关键字,为什么?如果改用 strong 关键字,可能造成什么问题?
43、怎么理解浅拷贝与深拷贝?
44、如何让自己的类用 copy 修饰符?
45、@property 的本质是什么?
46、@protocol 和 category 中如何使用 @property?
47、category 和 extension 有什么区别?category 是如何加载的?category 的方法覆盖是怎么处理的?
48、@synthesize 和 @dynamic 分别有什么作用?
49、ARC 下,不显式指定任何属性关键字时,默认的关键字都有哪些?
50、在有了自动合成属性实例变量之后,@synthesize 还有哪些使用场景?
51、一个 objc 对象如何进行内存布局(考虑有父类的情况)?
52、runtime 如何通过 selector 找到对应的 IMP 地址(分别考虑实例方法和类方法)?Selector、Method 和 IMP 的有什么区别与联系?
53、objc 中的类方法和实例方法有什么本质区别和联系?
54、objc_msgSend、_objc_msgForward 都是做什么的?OC 中的消息调用流程是怎样的?
55、能否向编译后得到的类中增加实例变量?能否向运行时创建的类中添加实例变量?为什么?
56、runloop 和线程有什么关系?
57、runloop 的 mode 作用是什么?
58、以 + scheduledTimerInterval… 的方式触发的 timer,在滑动页面上的列表时,timer 会暂定回调,为什么?如何解决?WithTime
59、猜想 runloop 内部是如何实现的?
60、聊一聊iOS 中的离屏渲染?
61、objc 使用什么机制管理对象内存?
62、ARC 通过什么方式帮助开发者管理内存?
63、iOS 开发中常见的内存问题有哪些?
64、一个 autorealese 对象在什么时刻释放?
65、如何实现 autoreleasepool 的?
66、如何用 GCD 同步若干个异步调用?
67、dispatch_barrier_async 的作用是什么?
68、如何手动触发一个 value 的 KVO?
69、BAD_ACCESS 在什么情况下出现?
70、动态计算文本高度的时候需要注意什么?
71、如何优化 App 的启动耗时?
72、什么是事件响应链?
73、当我们要做一些基于 CALayer 的动画时,有时需要设置 layer 的锚点来配合动画,这时候我们需要注意什么?
74、聊一聊 TCP 的滑动窗口协议?
75、聊一聊 TCP 的拥塞控制相关过程?
76、聊一聊你知道的几种查找树?
77、load 和 initialize 方法的区别?
78、如何优化 App 的的包大小?
79、struct和class的区别
80、介绍一下观察者模式
81、在一个HTTPS连接的网站里,输入账号密码点击登录后,到服务器返回这个请求前,中间经历了什么
82、在一个app中间有一个button,在你手触摸屏幕点击后,到这个button收到点击事件,中间发生了什么
83、循环引用的产生原因,以及解决方法
84、键路径(keyPath)、键值编码(KVC)、键值观察(KVO)
85、NSNotification、Block、Delegate和KVO的区别
86、static、self、super关键字的作用
87、iOS开发中数据持久性有哪几种?
88、Core Data的6成员对象
89、Core Data的功能
90、堆和栈的区别
91、线程与进程的区别和联系?
92、多线程编程
93、
94、
95、

持续更新,多多关注


另外我附上一份pdf的面试题大全,以及收集的各大厂面试题 ! 要的加iOS高级技术群:624212887,群文件直接获取

如下图所示:

iOS面试题大全

iOS面试题大全

iOS面试题合集


http://chatgpt.dhexx.cn/article/v2ONgSvc.shtml

相关文章

iOS 多线程面试题

没有比这里更全的了&#xff0c;看我就好了 面试官&#x1f603; &#xff1a;你了解进程吗&#xff1f;谈谈你对进程和线程的理解&#xff1f; 不谈进程&#xff0c;线程无从谈起。要了解什么是线程&#xff0c;我们先需要理解什么是线程。 秒懂百科 &#x1f603; 以上百科&…

2020,300道高级iOS开发面试题(最新整理)

这个栏目将持续更新–请iOS的小伙伴关注! 一&#xff1a;知名大厂iOS开发面试题篇 1、腾讯—最新iOS面试题总结 2、百度—最新iOS面试题总结 3、头条—最新iOS面试题总结 4、阿里—最新iOS面试题总结 5、美团—最新iOS面试题总结 6、某大厂—最新iOS面试题总结 7、抖音–最新i…

iOS经典面试题大全

1.INTERVIEW 共勉 作为一个开发者&#xff0c;有一个学习的氛围跟一个交流圈子特别重要&#xff0c;这是一个我的iOS交流群&#xff1a;638302184&#xff0c;不管你是小白还是大牛欢迎入驻 &#xff0c;分享BAT,阿里面试题、面试经验&#xff0c;讨论技术&#xff0c; 与2800i…

2021年,整理的iOS高频面试题及答案(总会有你需要的)

推荐阅读&#xff1a;关于iOS面试题汇总(栏目持续更新) 各位最近应该忙于跳槽与面试吧&#xff0c;毕竟金三银四&#xff0c;珍惜好机会&#xff0c;预祝大家面试顺利通过&#xff0c;迎接大厂offer。有需要资料可以私聊我了解 从输入url到页面展示到底发生了什么 1、输入地…

iOS面试题 2016版

2015-1-3 达内纪老师 GitHub&#xff0c;CSDN博客 说明&#xff1a; 最近为达内学员整理面试题。发现网上的面试题和答案基本都是抄来抄去的&#xff0c;甚至很多答案都是错误的。 所以整理了常见的面试题&#xff0c;对答案重新进行了筛选整理。 如果答案有错漏或者更好的答案…

iOS面试题系列之常见算法

iOS面试中熟悉常见算法 1、 对以下一组数据进行降序排序&#xff08;冒泡排序&#xff09;。“24&#xff0c;17&#xff0c;85&#xff0c;13&#xff0c;9&#xff0c;54&#xff0c;76&#xff0c;45&#xff0c;5&#xff0c;63” int main(int argc, char *argv[]) {int …

(2021年)iOS面试题及答案,以及添加Flutter 面试问题,Swift面试题

面试题的深入解析&#xff1b;​​​​​​​ 一&#xff0c;内存管理在实际开发中的应运。 1.UITableView的数据条数太多时会消耗内存&#xff0c;可以给UITableViewCell、UICollectionViewCell、UITableViewHeaderFooterView设置正确的复用ID&#xff0c;充分复用。 2.有…

iOS中高级面试题

https://blog.csdn.net/u014600626/article/details/102923706 iOS基础 1&#xff1a;讲讲你对atomic & nonatomic的理解 1、原子操作对线程安全并无任何安全保证。被 atomic 修饰的属性(不重载设置器和访问器)只保证了对数据读写的完整性&#xff0c;也就是原子性&am…

ios 面试题

1 为什么block要用copy修饰&#xff1f; 答&#xff1a;因为block在创建的时候&#xff0c;它的内存是分配在栈上的&#xff0c;而不是在堆区。栈区的特点是&#xff1a;对象随时有可能被销毁&#xff0c;一旦被销毁&#xff0c;在调用时就会造成崩溃。所以我们要使用copy吧它拷…

2022年 iOS面试题总结

前言 都说今年互联网行情很差&#xff0c;iOS行情更差。但到底怎么样呢&#xff0c;不能光听别人说&#xff0c;而要自己走出去看一看。我的面试的阶段基本都在3月份&#xff0c;准备的阶段则要再往前推个半个月吧。期间约到了不少一二线互联网公司面试机会&#xff0c;前期由…

iOS面试题(七)

iOS面试题&#xff08;一&#xff09; iOS面试题&#xff08;二&#xff09; iOS面试题&#xff08;三&#xff09; iOS面试题&#xff08;四&#xff09; iOS面试题&#xff08;五&#xff09; iOS面试题&#xff08;六&#xff09; iOS面试题&#xff08;七&#xff09; iOS面…

iOS基础面试题(一)

kaikaijia同学私信我,说想加群,我就建个iOS开发群,大家做技术交流和资源,群号:241048287(已满),群号2 :340957379(已满) 群号3:370041534 (已满) 有兴趣的同学可以加群,验证信息:iOS+姓名。 所有的群都已到人数上限,本着“与时俱进”精神,建了个"iOS面试&…

ios面试题总结

本篇主要针对面试题进行解析&#xff0c;会进行基础知识的总结和拓展&#xff0c;仅供参考&#xff0c;如有错误&#xff0c;欢迎指出&#xff0c;一起学习&#xff01; 一、关于Foundation框架中的问题 &#xff08;一&#xff09;NSCache & NSDictionary 1.NSDictiona…

iOS面试题大全2021(附答案)

1、简述你项目中常用的设计模式。它们有什么优缺点&#xff1f; 常用的设计模式有&#xff1a;代理、观察者、单例。 &#xff08;1&#xff09;单例&#xff1a;它是用来限制一个类只能创建一个对象。这个对象中的属性可以存储全局共享的数据。所有的类都能访问、设置此单例…

iOS 中高级面试题(附答案)

RunLoop 1、什么是 RunLoop? RunLoop 作用有哪些&#xff1f; RunLoop 可以称之为运行循环&#xff0c;在程序运行过程中循环做一些事情&#xff0c;如果没有 RunLoop 程序执行完毕就会立即退出&#xff0c;有 RunLoop 程序会一直运行&#xff0c;并且时时刻刻在等待用户的输…

安装MyBatis教程

简单安装MyBatis教程 1. 介绍 MyBatis简介 1&#xff09; MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架 2&#xff09; MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集 3&#xff09; MyBatis可以使用简单的XML或注解用于配置和原…

mybatis简明教程

mybatis MyBatis 是一款优秀的持久层框架&#xff0c;它支持自定义 SQL、存储过程以及高级映射&#xff0c;本文将让您快速掌握mybatis开发 一&#xff1a; 简介 一只被烤黑了的鸟 MyBatis 是一款优秀的持久层框架&#xff0c;它支持自定义 SQL、存储过程以及高级映射。MyBa…

Mybatis教程-实战

1.从JDBC谈起 1.1.使用IDEA创建maven工程 1.2.引入mysql依赖包 <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.32</version> </dependency>1.3.准备数据 创建数据库&a…

SpringBoot使用Mybatis教程

文章目录 新建SpringBoot项目引入mybatis依赖如何使用mybatis&#xff1f;1.配置mybatis①.数据库配置②.mybatis相关配置 2.使用mybatis①.创建JavaBean②.创建mapper1).使用注解方式2&#xff09;.使用xml方式 ③.调用 新建SpringBoot项目 本文所使用的代码编辑器为IntelliJ…

MyBatis教程看这一篇就够啦,简单又全面(IDEA版)

目录 一、MyBatis简介 1.1 MyBatis介绍 为什么需要Mybatis&#xff1f; 二、MyBatis框架部署 2.1 创建Maven项目 2.2 在项目中添加MyBatis依赖 2.3 创建MyBatis配置文件 三、MyBatis框架使用 3.1 创建数据表 3.2 创建实体类 3.3 创建DAO接口&#xff0c;定义操作方法 …