2019 全网 iOS 面试题以及答案总结!
一、Runtime
- 一个objc对象的isa的指针指向什么?有什么作用?
- 一个 NSObject 对象占用多少内存空间?
- 说一下对 class_rw_t 的理解?
- 说一下对 class_ro_t 的理解?
- 说一下对 isa 指针的理解
- 说一下 Runtime 的方法缓存?存储的形式、数据结构以及查找的过程?
- 使用runtime Associate方法关联的对象,需要在主对象dealloc的时候释放么?
- 实例对象的数据结构?
- 什么是method swizzling(俗称黑魔法)
- 什么时候会报unrecognized selector的异常?
- 如何给 Category 添加属性?关联对象以什么形式进行存储?
- 能否向编译后得到的类中增加实例变量?能否向运行时创建的类中添加实例变量?为什么?
- 类对象的数据结构?
- runtime如何通过selector找到对应的IMP地址?
- runtime如何实现weak变量的自动置nil?知道SideTable吗?
- objc中向一个nil对象发送消息将会发生什么?
- objc在向一个对象发送消息时,发生了什么?
- isKindOfClass 与 isMemberOfClass
- Category 在编译过后,是在什么时机与原有的类合并到一起的?
- Category 有哪些用途?
- Category 的实现原理?
- _objc_msgForward函数是做什么的
- [[self class] 与 [super class]](https://www.jianshu.com/p/7a2fc35dd607)
- 代码题 一
- 代码题 二
二、Runloop
- 为什么 NSTimer 有时候不好使?
- AFNetworking 中如何运用 Runloop?
- autoreleasePool 在何时被释放?
- PerformSelector 的实现原理?
- PerformSelector:afterDelay:这个方法在子线程中是否起作用?为什么?怎么解决?
- RunLoop的Mode
- RunLoop的实现机制
- RunLoop和线程
- RunLoop的数据结构
- RunLoop概念
- RunLoop与NSTimer
- 讲一下 Observer ?
- 解释一下 NSTimer
- 解释一下
事件响应
的过程? - 解释一下 手势识别 的过程?
- 什么是异步绘制?
- 利用 runloop 解释一下页面的渲染的过程?
三、Objective_C语言特性
四、Animation
五、Block
六、UI相关
七、多线程
- 进程、线程
- 多进程、多线程
- 任务、队列
- iOS中的多线程
- GCD---队列
- 死锁
- GCD任务执行顺序
- dispatch_barrier_async
- dispatch_group_async
- Dispatch Semaphore
- 延时函数(dispatch_after)
- 使用dispatch_once实现单例
- NSOperationQueue的优点
- NSOperation和NSOperationQueue
- NSThread+runloop实现常驻线程
- 自旋锁与互斥锁
八、内存管理
- 在 Obj-C 中,如何检测内存泄漏?你知道哪些方式?
- 在 MRC 下如何重写属性的 Setter 和 Getter_
- 循环引用
- 说一下什么是
悬垂指针
?什么是野指针
? - 说一下对 retain,copy,assign,weak,_Unsafe_Unretain 关键字的理解
- 是否了解 深拷贝 和 浅拷贝 的概念,集合类深拷贝如何实现
- 使用自动引用计数应遵循的原则
- 能不能简述一下 Dealloc 的实现机制
- 内存中的5大区分别是什么?
- 内存管理默认的关键字是什么?
- 内存管理方案
- 内存布局
- 讲一下
iOS
内存管理的理解 - 讲一下
@dynamic
关键字? - 简要说一下
@autoreleasePool
的数据结构? - 访问
__weak
修饰的变量,是否已经被注册在了@autoreleasePool
中?为什么? retain
、release
的实现机制?- MRC(手动引用计数)和ARC(自动引用计数)
BAD_ACCESS
在什么情况下出现?autoReleasePool
什么时候释放?- ARC自动内存管理的原则
ARC
在运行时做了哪些工作?ARC
在编译时做了哪些工作ARC
的retainCount
怎么存储的?__weak
属性修饰的变量,如何实现在变量没有强引用后自动置为nil
?__weak
和_Unsafe_Unretain
的区别?
九、设计模式
十、数据安全及加密
十一、数据结构与算法
十二、网络相关
面试题还在更新,请记得要关注该简书哦~
面试题持续整理更新中,需要拿到第一手大厂面试题及答案文档可以添加 iOS进阶学习交流群:551346706 !结实人脉、讨论技术你想要的这里都有!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
实用型ColorPicker的设计与实现
一、前言 ColorPicker,颜色选取器,简称拾色器。说到拾色器,大家可能就会想到Photoshop, 使用得最多的应该是设计, 对于开发而言,平常要用到拾色器的机会不多。如果有一天,项目中需要一个拾色器(多用于自定义颜色),该如何入手?今天且来给大家分享一下拾色器的设计和实现。 二、颜色空间 要实现实用的拾色器,了解下颜色空间是必要的。颜色空间也称彩色模型(又称彩色空间或彩色系统),它的用途是在某些标准下用通常可接受的方式对彩色加以说明。关于颜色空间,文末附有一些链接,都是前人的精华总结。尤其是《色彩空间中的 HSL、HSV、HSB 有什么区别》中的讨论(知乎大神的作答),读完立即醍醐灌顶,茅塞顿开。 本节主要摘录各大神的一些表述,并加以整理。为了阅读体验,就不逐一附上作者了,具体见文后链接。 2.1 RGB空间 RGB是从颜色发光的原理来设计定的,通俗点说它的颜色混合方式就好像有红、绿、蓝三盏灯,当它们的光相互叠合的时候,色彩相混,而亮度却等于两者亮度之总和,越混合亮度越高,即加法混合。红、绿、蓝三个颜色通道每种色各分为256阶亮度,在0时“灯”最弱——是关掉的,而在255时“...
- 下一篇
寻找iOS上架技术
寻找iOS上架技术,要求简单,内容不限,长期合作,价格高,中介勿扰!有意者联系邮箱:make101love@126.com QQ:1060088990
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS8编译安装MySQL8.0.19
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7,CentOS8安装Elasticsearch6.8.6
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Windows10,CentOS7,CentOS8安装Nodejs环境