首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
OC面试八股文
王飞飞不会飞
创建于2022-04-27
订阅专栏
面试八股文,看完面试无忧无虑。
等 110 人订阅
共20篇文章
创建于2022-04-27
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
iOS八股文(二十)Runloop探究
提到Runloop每个iOSer都非常熟悉,也常常作为面试重点来考察面试者。本文通过查阅文档,代码验证来了解认识Runloop。 什么是Runloop? 首先来看官方文档的定义⬇️ 在App运行的过程
iOS八股文(十九)KVC、KVO
KVC(Key-Value Coding)健值编码 在iOS开发中,允许直接通过Key来访问成员变量,动态去查找访问成员变量。 相对于调用set方法设置属性值,使用kvc更加灵活,其中的key可以在运
iOS八股文(十八)架构模式
MVC 相信提到MVC(Model View Controller),iOSer再熟悉不过了,苹果爸爸在官方也推荐使用这种架构模式: MVC的缺点: Controller过重,controller需要
iOS八股文(十七)LLVM概述
在iOS开发过程中,不管你是使用swift还是OC,在编译的过程中都会使用到LLVM,在之前的文章中也在探究原理的过程中,使用过clang -rewrite -objc命令重写过OC代码,那么今天就系
iOS八股文(十六)关于Block,你在第几层?
Block在iOS开发中有举足轻重的地位,Block能理解和使用透彻的开发者并不多,借助此次整理八股文机会,透彻的聊一聊Block,看看关于Block,你在第几层。
iOS八股文(十五)@synchronized为何如此强大?
前面的文章把iOS中能用的锁的讲解了一遍,其中@synchronized是一把非常强大的锁,支持多线程的递归调用,而在使用的时候只要把代码写进括号内,不需要管理锁的加锁和解锁,非常方便。这也是其倍受青
iOS八股文(十四)iOS中的锁
线程安全 在iOS中,UIKit是绝对线程安全的,因为UIKit都是在主线程操作的,单线程没有线程当然没有线程安全问题,但除此之外,其他都要考虑线程安全问题。 iOS解决线程安全的途径其原理大同小异,
iOS八股文(十三)GCD函数解析(栅栏、信号量、一次性、调度组)
之前的两篇文章对GCD队列和调度函数进行了解析。本文将继续讲解GCD里面一些使用率较低的函数的使用。 栅栏函数 我们在开发中经常会使用到并发队列+异步函数,来开启新线程去完成耗时任务,但这样的操作存在
iOS八股文(十二)GCD之函数和死锁源码浅析
书接上回,我们了解了dispatch源码中串行队列和并行队列的区别。本文准备对同步函数和异步函数源码浅析。GCD关于iOS开发的部分,准备用三遍文章。下一遍文章,准备讲解下GCD中其他函数的使用包括调
iOS八股文(十一)多线程之GCD
iOS开发中,无法避免都要使用到GCD(Grand Central Dispatch),我们只需要把待执行的任务放到适合的Dispatch Queue 中,GCD就能帮我们把任务放进合适的线程中执行,
iOS八股文(十)分类和关联对象源码解析
我们平时在开发的时候经常会使用分类来添加方法、协议、属性,但在添加属性的时候属性是不会自动生成成员变量的,这时候我们就需要关联对象来动态存储属性值。 这段代码包括Object-C的两个知识点,分别是分
iOS八股文(九)启动流程 -objc源码解析objc_init、map_images、load_images
上回书说到程序启动之前dyld的操作处理流程。主要分析了dyld-941.5的源码,本文再分析下在此流程中objc4源码(818.2)的处理逻辑。 首先回顾下整体流程: _objc_init解析 我们
iOS八股文(八)启动流程 -dyld4源码解析
我们的应用在从桌面点击App icon 到App展示界面,手机都做了哪些事情? main函数是如何被调用的? 带着这些问题,研究一下app的启动流程。 首先先普及一些基础概念。 冷启动与热启动 这个概
iOS八股文(七)objc_msgSend之动态解析和消息转发
上一篇中,我们了解了objc_msgSend过程中的消息查找的流程,其中有个查找方法的函数名叫lookUpImpOrForward,字面翻译查找方法或者转发。那么本文就来记录下objc_msgSend
iOS八股文(六)objc_msgSend之方法查找源码解析
Object-C动态性 说到Objcet-C的动态性,我们可以从两点来聊。首先是类的结构的动态性,静态语音类的结构确定是在编译时候,而Objcet-C从编译推迟到了运行时。另一方面就不得不提到消息发送
iOS八股文(四)类对象的结构(下)
ro 和 rw的区别 从生成时机的角度来说, ro编译阶段生成,rw运行的时候生成。从存储的内容角度来讲,ro中有方法、属性、协议和成员变量,而rw中并没有成员变量。rw中的方法属性协议的取值方法中,
iOS八股文(三)类对象的结构(上)
对象的分类 Object- C中所有对象可以分为3类,实例对象,类对象,元类对象。其中我们开发者常用的继承自NSObject都属于实例对象,实例对象通过isa指针指向的是类对象。类对象通过isa指向的
iOS八股文(五)class类结构cache_t源码详解
cache_t结构 在objc4源码中,objc_class机构中有一个cache_t的成员变量。 可以看到有2个成员变量组成。但从定义中看不出成员变量的含义,我们需要结合其中一个方法的实现去了解。
iOS八股文(二)对象的本质探索(下)
属性存储位置重排 系统在存储属性自动生成的成员变量的时候,会对这些成员变量重新排列顺序,而不是我们编码的顺序,所有我们编码的时候可以不考虑属性顺序对内存的影响。但如果是成员变量则不会重新排列。 可以看
iOS八股文(一)对象的本质探索(上)
对象的本质 Objective-C 代码的底层都是通过 C/C++ 实现,所以 Objective-C 面向对象是基于 C/C++ 数据结构实现。 下图为OC语言转换成机器语言的几个过程 可以通过c