在isa的那节中我们提到当extra_rc不够用时,会借助sidetable来存储计数值,同时,has_sidetable_rc会被标志为1。那么这节我们就来介绍一下Side...
在isa的那节中我们提到当extra_rc不够用时,会借助sidetable来存储计数值,同时,has_sidetable_rc会被标志为1。那么这节我们就来介绍一下Side...
Autoreleasepool Autoreleasepool: 自动释放池,在ARC中,我们通常通过如下形式使用autoreleasepool: 实际上,编译器会将上面的代...
锁的分类 根据资源申请者的表现形式,锁分为:自旋锁 和 互斥锁 自旋锁: 不引起调用者的休眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已...
CFRunLoopModeRef 从上一篇中我们知道: 1.CFRunLoopModeRef代表RunLoop的运行模式2.一个RunLoop包含若干个Mode,每个Mode...
什么是RunLoop 顾名思义:运行循环,在程序的运行过程中去循环的做些事情。RunLoop 实际上是一个对象,这个对象在循环中用来处理程序运行过程中出现的各种事件。比如: ...
isa指针 对象的isa指针,用来表明对象所属的类的类型。但是如果isa指针仅表示类型的话,对内存显然也是一个极大的浪费。在arm64架构之前,isa就是一个普通的指针,存储...
block的本质 block是我们很熟悉也是项目中经常用到的东西。block本质上也是一个OC对象,它内部也有个isa指针。block是封装了函数调用以及函数调用环境的OC对...
wait和signal是直接的代码目标逻辑,类似一个锁,当wait之前semaphore为0就进不去wait之后的逻辑。wait之前的semaphore不为0就可以进入wait之后的逻辑。
Swift DispatchSemaphore信号量定义1、信号量:就是一种可用来控制访问资源的数量的标识,设定了一个信号量,在线程访问之前,加上信号量的处理,则可告知系统按照我们指定的信号量数量来执行多个线程。其实,这有点类...
+load +initialize+load、+initialize这两个方法看起来都是在类初始的时候调用的,其实是在调用时机和runtime底层逻辑上有很大的不同。 +lo...
现象 在NSObject中我们可以看到 通过打印NSObject的实例对象obj的内存大小 2020-10-26 17:38:37.109617+0800 StudyRun[...
KVO的常见问题 iOS用什么方式实现对一个对象的KVO?(KVO的本质是什么?) 1.利用RuntimeAPI动态生成一个子类,并且让instance对象的isa指向这个全...
分类Category 在平日编程中或阅读第三方代码时,category可以说是无处不在。category也可以说是OC作为一门动态语言的一大特色。category为我们动态扩...
Runtime交互 我们的OC语言是离不开runtime的。 OC源码:大多数情况下,我们仅使用OC语言来编写代码,如NSObject,类属性,中括号的方法调用,协议,分类等...
1. 什么是 Runtime? Objective-C 语言 是一门动态语言。在编译阶段并不知道变量的具体数据类型,也不知道所真正调用的哪个函数。只有在运行时间才检查变量的数...
作者是在哪个城市工作的
2020年iOS面试总结🌸絮:2020年到来了,随着疫情的到来,我也失业了。一边忙着抵抗病毒,一边还得继续准备面试。又该准备“造火箭”了,去了继续“拧螺丝”,下面是自己最近的一些总结,也会在后面的面...
已上传demo
针对Swift项目的框架(Moya+HandyJSON+Rx)仿照有妖气的框架实践 针对Swift项目的框架实例总结 有妖气的Demo传送 --- 很久之前写得,应该还可以运行 效果实现 基本框架布局 第三方框架的使用 一 、关于基础类...
若在swift项目里导入的 OC 类需要使用 C++ 特性而后缀为 .mm 时,有时候会报错。这时,需要在 Build Phases 中的 Compile Sources 中...