iOS-2023年最新面试题

本文深入探讨了RunLoop的本质、线程与队列的关系,以及GCD的使用。同时,详细阐述了KVC和KVO在Objective-C中的工作原理,以及内存管理中的引用计数、weak引用和autoreleasepool。此外,还涵盖了分类、扩展和关联对象在Objective-C中的应用,以及NSTimer、锁和网络协议的基础知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Runloop

  1. RunLoop 的本质是什么?
  2. Runloop和线程是什么关系?
  3. Runloop的底层数据结构是什么样的?有几种 运行模式(mode)?每个运行模式下面的 CFRunloopMode 是哪些?他们分别是什么职责?
  4. Runloop 的监听状态有哪几种?
  5. Runloop 的工作流程大概是什么样的?
  6. Runloop 有哪些应用?
  7. Source0, Source1

线程、队列、锁

  1. 线程、队列的关系? 一个线程是否可能存在于两个队列?
  2. 队列一定会创建线程吗?
  3. 队列是否可以无限制创建?
  4. PerformSelector & NSInvocation优劣对比
  5. gcd 的使用,能不能取消?
  6. 如何进行线程保活
  7. 编程题 3个线程顺序打印 0-100

GCD

  1. GCD、NSOperation区别, 功能方法区别.
  2. gcd queue 的区别
  3. group 如何实现barrier类似的功能?
  4. GCD group 如何实现同步的? (还能用什么实现?)
  5. 执行一个 NSThread 任务, 如何在执行过程中让他终止?
  6. iOS NSOperation 是如何终止/取消任务的?
  7. 多线程,异步执行(async)一个performSelector 会执行么?如果加上 afterDelay呢?
  8. GCD 实现 NSOperationQueue
  9. DispatchQoS的作用

KVC、KVO

  1. 结构体的字节对齐和OC对象的字节对齐?
  2. instance(实例对象)、class(类对象)、meta-class(元类对象)分别储存了什么信息?为什么要设计元类?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值