这个仓库主要是梳理自己做iOS开发以来收集整理的iOS相关的偏原理性的知识点,以及自己的一些总结和体会。供以后复习及面试。
- 请讲一下对iOS内存管理的理解
- 使用自动引用计(ARC)数应该遵循的原则
- ARC 自动内存管理的原则
- 访问 __weak 修饰的变量,是否已经被注册在了 @autoreleasePool 中?为什么?
- ARC 的 retainCount 怎么存储的
- 简要说一下 @autoreleasePool 的数据结构
- 为什么已经有了 ARC ,但还是需要 @AutoreleasePool 的存在
- __weak 属性修饰的变量,如何实现在变量没有强引用后自动置为 nil
- @dynamic 关键字
- Dealloc 的实现机制
- autoReleasePool 什么时候释放
- retain、release 的实现机制
- ARC 在编译时做了哪些工作
- ARC 在运行时做了哪些工作
- MRC和ARC下Set方法的重写
- @synthesize关键字的理解
- GCD 与 NSOperationQueue 有哪些异同
- GCD 并发队列实现机制
- GCD的各种任务和队列
- NSMutableArray、和 NSMutableDictionary是线程安全的吗?NSCache呢?
- iOS多线程之GCD的使用
- 同步与异步、串行队列与并发队列、并发与并行
- 多线程的各种锁
- 如何确保线程安全
- 解释一下多线程中的死锁?
- iOS线程间通信的几种方式
- UITableView的优化
- iOSApp编译过程及签名
- 什么是离屏渲染?什么情况下会触发?该如何应对?
- 日常检查内存泄露
- 有效降低 APP 包的大小
- 如何优化 APP 的电量?
- 在项目中遇到的循环引用问题
- HTTP 请求报文 和 响应报文的结构?
- GET与POST的区别
- Http 和 Https 的区别?为什么更加安全?
- OSI 七层模型和TCP/IP五层模型的协议
- Socket
- TCP&UDP协议
- 大文件下载功能需要注意的地方
- 大文件的分片上传
- 如何做到后台下载和上传
- 断点续传功能该怎么实现?
- 网络中的session和cookie
- 网络请求的状态码都大致代表什么意思
- 简述 KVO 的实现机制
- @synthesize 和 @dynamic 分别有什么作用
- iOS的反射机制
- id和instanceType的区别
- 苹果源代码及文档网站
- 通知的实现机制,通知是同步操作还是异步操作的?
- 通知和代理的区别
- load 和 Initialize 的区别?
- 在main函数之前做了哪些工作
- 在什么情况下会触发 KVO?
- 如何做到 KVO 手动通知?
- 给实例变量赋值时,是否会触发 KVO?
- 对象的Copy和MutableCopy
- Text Kit基本使用
- NSDictionary的实现原理
- Category 和 Extension 有什么区别
- Category 有哪些用途
- Category 的实现原理
- 如何给 Category 添加属性?关联对象以什么形式进行存储?
- Obj-C 中的类信息存放在哪里
- Objective-C 如何实现多重继承
- 一个 NSObject 对象占用多少内存空间
- 在 Obj-C 中为什么叫发消息而不叫函数调用
- 如何实现动态添加方法和属性
- 如何运用 Runtime 字典转模型
- 如何运用 Runtime 进行模型的归解档
- 实例对象、类对象、元类对象的数据结构
- 对 isa 指针的理解, 对象的isa 指针指向哪里?isa 指针有哪两种类型
- 消息解析和转发
- 说一下 Runtime 的方法缓存?存储的形式、数据结构以及查找的过程
- 说一下对 class_ro_t 的理解
- 说一下对 class_rw_t 的理解?
- Type Encoding类型编码
- method swizzling Hook方法时需要注意的地方
- runtime中SEL、IMP、和Method的动态定义
- GCD 在 Runloop 中的使用
- NSTimer的原理
- PerformSelector 的实现原理
- PerformSelector:afterDelay:这个方法在子线程中是否起作用?为什么?怎么解决
- Runloop 和线程的关系
- Runloop的Observer
- autoreleasePool 在何时被释放
- 为什么 NSTimer 有时候不好使
- 介绍Runloop 的 Mode
- 利用 runloop 解释一下页面的渲染的过程
- 如何使用 Runloop 实现一个常驻线程?这种线程一般有什么作用
- 异步绘制
- 解释一下事件响应的过程
- 解释一下手势识别的过程