chilimyan / iOS-source-note

iOS开发笔记总结

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

iOS-source-note

iOS开发笔记总结

这个仓库主要是梳理自己做iOS开发以来收集整理的iOS相关的偏原理性的知识点,以及自己的一些总结和体会。供以后复习及面试。

1、内存管理

内存管理精解

问题

  1. 请讲一下对iOS内存管理的理解
  2. 使用自动引用计(ARC)数应该遵循的原则
  3. ARC 自动内存管理的原则
  4. 访问 __weak 修饰的变量,是否已经被注册在了 @autoreleasePool 中?为什么?
  5. ARC 的 retainCount 怎么存储的
  6. 简要说一下 @autoreleasePool 的数据结构
  7. 为什么已经有了 ARC ,但还是需要 @AutoreleasePool 的存在
  8. __weak 属性修饰的变量,如何实现在变量没有强引用后自动置为 nil
  9. @dynamic 关键字
  10. Dealloc 的实现机制
  11. autoReleasePool 什么时候释放
  12. retain、release 的实现机制
  13. ARC 在编译时做了哪些工作
  14. ARC 在运行时做了哪些工作
  15. MRC和ARC下Set方法的重写
  16. @synthesize关键字的理解

2、多线程

  1. GCD 与 NSOperationQueue 有哪些异同
  2. GCD 并发队列实现机制
  3. GCD的各种任务和队列
  4. NSMutableArray、和 NSMutableDictionary是线程安全的吗?NSCache呢?
  5. iOS多线程之GCD的使用
  6. 同步与异步、串行队列与并发队列、并发与并行
  7. 多线程的各种锁
  8. 如何确保线程安全
  9. 解释一下多线程中的死锁?
  10. iOS线程间通信的几种方式

3、数据存储

iOS数据持久化

4、性能优化

  1. UITableView的优化
  2. iOSApp编译过程及签名
  3. 什么是离屏渲染?什么情况下会触发?该如何应对?
  4. 日常检查内存泄露
  5. 有效降低 APP 包的大小
  6. 如何优化 APP 的电量?
  7. 在项目中遇到的循环引用问题

5、数据结构与算法

6、网络

  1. HTTP 请求报文 和 响应报文的结构?
  2. GET与POST的区别
  3. Http 和 Https 的区别?为什么更加安全?
  4. OSI 七层模型和TCP/IP五层模型的协议
  5. Socket
  6. TCP&UDP协议
  7. 大文件下载功能需要注意的地方
  8. 大文件的分片上传
  9. 如何做到后台下载和上传
  10. 断点续传功能该怎么实现?
  11. 网络中的session和cookie
  12. 网络请求的状态码都大致代表什么意思

7、音视频处理

8、项目架构

9、设计模式

10、源代码阅读

11、蓝牙

12、Foundation

  1. 简述 KVO 的实现机制
  2. @synthesize 和 @dynamic 分别有什么作用
  3. iOS的反射机制
  4. id和instanceType的区别
  5. 苹果源代码及文档网站
  6. 通知的实现机制,通知是同步操作还是异步操作的?
  7. 通知和代理的区别
  8. load 和 Initialize 的区别?
  9. 在main函数之前做了哪些工作
  10. 在什么情况下会触发 KVO?
  11. 如何做到 KVO 手动通知?
  12. 给实例变量赋值时,是否会触发 KVO?
  13. 对象的Copy和MutableCopy
  14. Text Kit基本使用
  15. NSDictionary的实现原理

13、WebView

  1. JS 和 OC 互相调用的几种方式?

14、Block

Block精解

  1. Block 处理循环引用
  2. Block的内存管理

15、Runtime

Runtime-运行时的概念

Runtime-类和对象

Runtime-成员变量和属性

Runtime-分类和协议

Runtime-Method Swizzling

Runtime-消息转发机制原理

问题

  1. Category 和 Extension 有什么区别
  2. Category 有哪些用途
  3. Category 的实现原理
  4. 如何给 Category 添加属性?关联对象以什么形式进行存储?
  5. Obj-C 中的类信息存放在哪里
  6. Objective-C 如何实现多重继承
  7. 一个 NSObject 对象占用多少内存空间
  8. 在 Obj-C 中为什么叫发消息而不叫函数调用
  9. 如何实现动态添加方法和属性
  10. 如何运用 Runtime 字典转模型
  11. 如何运用 Runtime 进行模型的归解档
  12. 实例对象、类对象、元类对象的数据结构
  13. 对 isa 指针的理解, 对象的isa 指针指向哪里?isa 指针有哪两种类型
  14. 消息解析和转发
  15. 说一下 Runtime 的方法缓存?存储的形式、数据结构以及查找的过程
  16. 说一下对 class_ro_t 的理解
  17. 说一下对 class_rw_t 的理解?
  18. Type Encoding类型编码
  19. method swizzling Hook方法时需要注意的地方
  20. runtime中SEL、IMP、和Method的动态定义

16、Animation

17、Runloop

Runloop精解

Runloop应用场景

问题

  1. GCD 在 Runloop 中的使用
  2. NSTimer的原理
  3. PerformSelector 的实现原理
  4. PerformSelector:afterDelay:这个方法在子线程中是否起作用?为什么?怎么解决
  5. Runloop 和线程的关系
  6. Runloop的Observer
  7. autoreleasePool 在何时被释放
  8. 为什么 NSTimer 有时候不好使
  9. 介绍Runloop 的 Mode
  10. 利用 runloop 解释一下页面的渲染的过程
  11. 如何使用 Runloop 实现一个常驻线程?这种线程一般有什么作用
  12. 异步绘制
  13. 解释一下事件响应的过程
  14. 解释一下手势识别的过程

18、UIKit

  1. UIView的生命周期
  2. UIViewController的生命周期
  3. loadView方法
  4. UIView的布局方法和重绘
  5. UIView在哪个方法布局子view?UIViewController在哪个方法布局子view?
  6. UIButton继承机制
  7. 事件的传递与事件响应者链
  8. 使用drawRect有什么影响?
  9. 控制器收到内存警告会如何处理
  10. UIView和CALayer

19、第三方库

  1. SDWebImage加载图片引发的内存大量消耗卡顿的问题
  2. 描述下SDWebImage里面给UIImageView加载图片的逻辑

About

iOS开发笔记总结