2020年面向iOS开发人员的知识点总结(更新中)
前言:
最近在整理自己的技术栈,收集了一些自己认为比较重要的知识点分享给大家。
Runloop
iOS中触摸事件传递和响应原理
为什么只有主线程的runloop
是开启的
为什么只在主线程刷新UI
PerformSelector
和runloop
的关系
GCD 在Runloop中的使用?
AFNetworking 中如何运用 Runloop?
Runtime
Category 的实现原理?
isa指针的理解,对象的isa指针指向哪里?isa指针有哪两种类型?
Objective-C 如何实现多重继承?
runtime 如何实现 weak 属性?
讲一下 OC 的消息机制
runtime具体应用
runtime如何通过selector找到对应的IMP地址?
简述下Objective-C中调用方法的过程
load和initialize的区别
怎么理解Objective-C是动态运行时语言。
KVO
实现原理
通过KVC修改属性会触发KVO么?KVC的赋值和取值过程是怎样的?原理是什么?
哪些情况下使用kvo会崩溃,怎么防护崩溃
kvo的优缺点
Block
block
的内部实现,结构体是什么样的- block是类吗,有哪些类型
- 一个
int
变量被__block
修饰与否的区别?block的变量截获 block
在修改NSMutableArray
,需不需要添加__block
- 怎么进行内存管理的
block
可以用strong
修饰吗- 解决循环引用时为什么要用
__strong、__weak
修饰 block
发生copy
时机Block
访问对象类型的auto变量
时,在ARC和MRC
下有什么区别
多线程
主要以GCD为主
iOS
开发中有多少类型的线程?分别对比GCD
有哪些队列,默认提供哪些队列GCD
有哪些方法apiGCD
主线程 & 主队列的关系- 如何实现同步,有多少方式就说多少
dispatch_once
实现原理- 什么情况下会死锁
- 有哪些类型的线程锁,分别介绍下作用和使用场景
NSOperationQueue
中的maxConcurrentOperationCount
默认值NSTimer、CADisplayLink、dispatch_source_t
的优劣
架构设计
- 手动埋点、自动化埋点、可视化埋点
MVC、MVP、MVVM
设计模式- 常见的设计模式
- 单例的弊端
- 常见的路由方案,以及优缺点对比
- 如果保证项目的稳定性
- 设计一个图片缓存框架(LRU)
- 如何设计一个
git diff
- 设计一个线程池?画出你的架构图
- 你的app架构是什么,有什么优缺点、为什么这么做、怎么改进
数据结构
数据结构的存储一般常用的有几种?各有什么特点?
集合结构 线性结构 树形结构 图形结构
单向链表 双向链表 循环链表
数组和链表区别
堆、栈和队列
输入一棵二叉树的根结点,求该树的深度?
输入一课二叉树的根结点,判断该树是不是平衡二叉树?
字符串处理
这是我的iOS开发交流群:519832104不管你是小白还是大牛欢迎入驻,可以一起分享经验,讨论技术,共同学习成长!
另附上一份各好友收集的大厂面试题,需要iOS开发学习资料、面试真题,进群即可自行下载!免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2020年面向iOS开发人员的知识点总结(更新中)
下载Word文档到电脑,方便收藏和打印~
下载Word文档
猜你喜欢2020年面向iOS开发人员的知识点总结(更新中)
前言:最近在整理自己的技术栈,收集了一些自己认为比较重要的知识点分享给大家。Runloop1. iOS中触摸事件传递和响应原理2. 为什么只有主线程的runloop是开启的3. 为什么只在主线程刷新UI4. PerformSelector和2023-06-04
编程热搜
Python 学习之路 - Python
一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-chatgpt的中文全称是什么
chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列C/C++可变参数的使用
可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃Python 3 教程
Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 PythonPython pip包管理
一、前言 在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install 和 pip , 目前官方推荐使用 pip。
编程资源站
- 资料下载
- 历年试题
目录
反馈
我要
反馈