ios 通过kvc修改属性会触发kvo_2020年面向iOS开发人员的知识点总结(更新中)

前言:

最近在整理自己的技术栈,收集了一些自己认为比较重要的知识点分享给大家。

Runloop

Runtime

5.讲一下 OC 的消息机制

6.runtime具体应用

7.runtime如何通过selector找到对应的IMP地址?

8.简述下Objective-C中调用方法的过程

9.load和initialize的区别

10.怎么理解Objective-C是动态运行时语言。

KVO

Block

block的内部实现,结构体是什么样的

block是类吗,有哪些类型

一个

int变量被

__block 修饰与否的区别?block的变量截获

block在修改

NSMutableArray,需不需要添加

__block

怎么进行内存管理的

block可以用

strong修饰吗

解决循环引用时为什么要用

__strong、__weak修饰

block发生

copy时机

Block访问对象类型的

auto变量时,在

ARC和MRC下有什么区别

多线程

主要以GCD为主

iOS开发中有多少类型的线程?分别对比

GCD有哪些队列,默认提供哪些队列

GCD有哪些方法api

GCD主线程 & 主队列的关系

如何实现同步,有多少方式就说多少

dispatch_once实现原理

什么情况下会死锁

有哪些类型的线程锁,分别介绍下作用和使用场景

NSOperationQueue中的

maxConcurrentOperationCount默认值

NSTimer、CADisplayLink、dispatch_source_t 的优劣

架构设计

手动埋点、自动化埋点、可视化埋点

MVC、MVP、MVVM设计模式

常见的设计模式

单例的弊端

常见的路由方案,以及优缺点对比

如果保证项目的稳定性

设计一个图片缓存框架(LRU)

如何设计一个

git diff

设计一个线程池?画出你的架构图

你的app架构是什么,有什么优缺点、为什么这么做、怎么改进

数据结构

1.数据结构的存储一般常用的有几种?各有什么特点?

2.集合结构 线性结构 树形结构 图形结构

3.单向链表 双向链表 循环链表

4.数组和链表区别

5.堆、栈和队列

6.输入一棵二叉树的根结点,求该树的深度?

7.输入一课二叉树的根结点,判断该树是不是平衡二叉树?

8.字符串处理

这是我的iOS开发交流群:

519832104不管你是小白还是大牛欢迎入驻,可以一起分享经验,讨论技术,共同学习成长!

另附上一份各好友收集的大厂面试题,需要iOS开发学习资料、面试真题,进群即可自行下载!

算法

1.时间复杂度

2.空间复杂度

3.常用的排序算法

4.字符串反转

5.链表反转(头差法)

6.有序数组合并

7.查找第一个只出现一次的字符(Hash查找)

8.查找两个子视图的共同父视图

9.无序数组中的中位数(快排思想)

10.给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。

11.八大排序算法

Foundation

1.nil、NIL、NSNULL 有什么区别?

2.如何实现一个线程安全的 NSMutableArray?

3.atomic 修饰的属性是绝对安全的吗?为什么?

4.实现 isEqual 和 hash 方法时要注意什么?

5.id 和 instanceType 有什么区别?

6.self和super的区别

7.@synthesize和@dynamic分别有什么作用?

8.typeof 和

typeof,typeof 的区别?

9.类族

10.struct和class的区别

UIKit

1.UIView 和 CALayer 是什么关系?

2.Bounds 和 Frame 的区别?

3.setNeedsDisplay 和 layoutIfNeeded 两者是什么关系?

4.谈谈对UIResponder的理解

5.loadView的作用?

6.使用 drawRect有什么影响?

7.keyWindow 和 delegate的window有何区别

动画

1.UIView动画与核心动画的区别?

2.当我们要做一些基于 CALayer 的动画时,有时需要设置 layer的锚点来配合动画,这时候我们需要注意什么?

图像处理

1.图像的压缩方式

2.如何计算图片加载内存中所占的大小

数据安全及加密

1.对称加密和非对称加密的区别?

2.简述 SSL 加密的过程用了哪些加密方法,为何这么作?

3.iOS的签名机制是怎么样的

WebView

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

2.在使用 WKWedView 时遇到过哪些问题?

组件化

1.组件化有什么好处?

2.你是如何组件化解耦的?

3.为什么CTMediator方案优于基于Router的方案?

4.基于CTMediator的组件化方案,有哪些核心组成?

调试技巧

1.LLDB常用的调试命令?

2.断点调试

3.iOS 常见的崩溃类型有哪些?

源码理解

1.YYKit

2.SDWebImage加载图片过程

3.YYWebImage和SDWebImage对比

4.AFNetworking 底层原理分析

代码管理

1.SVN与Git优缺点比较

2.Git与SVN的区别

持续集成

1.你在项目中使用过什么持续集成方式?

2.jenkins怎么备份恢复

3.jenkins你都用了哪些插件?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值