首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Objective-C的本质
订阅
C在掘金50476
更多收藏集
微信扫码分享
微信
新浪微博
QQ
31篇文章 · 0订阅
这就是所谓的OC的反射机制
Class对象其实本质上是一个结构体,这个结构体的成员变量还是他自己。 系统Foundation框架为我们提供了一些方法反射的API,由于oc语言的动态性,这些操作可以发生在运行时的。 在NSObject类中我们提供一些基础方法,用来做一些判断操作,这些方法都是发生在运行时动态…
AutoreleasePool底层实现原理
App启动后,苹果在主线程 RunLoop 里注册了两个 Observer,其回调都是 _wrapRunLoopWithAutoreleasePoolHandler()。 第一个 Observer 监视的事件是 Entry(即将进入Loop),其回调内会调用 _objc_aut…
iOS-RunLoop 充满灵性的死循环
RunLoop 字面意思是跑圈,在我们的项目中其实就是运行循环,而且是充满灵性的死循环,为什么说他充满灵性呢?因为他可以在我们需要的时候自己跑起来运行,在我们没有操作的时候就停下来休息。充分节省 CPU 资源,提高程序性能。
iOS底层原理总结 - 探寻block的本质(二)
上一篇文章iOS底层原理总结 - 探寻block的本质(一)中已经介绍过block的底层本质实现以及了解了变量的捕获,本文继续探寻block的本质。 大括号执行完毕之后,person依然不会被释放。上一篇文章提到过,person为aotu变量,传入的block的变量同样为per…
iOS底层原理总结 - 探寻block的本质(一)
block本质上也是一个oc对象,他内部也有一个isa指针。block是封装了函数调用以及函数调用环境的OC对象。 上图中将c++中block的声明和定义分别与oc代码中相对应显示。将c++中block的声明和调用分别取出来查看其内部实现。 上述定义代码中,可以发现,block…
从汇编代码探究 NSClassFromString 实现
近日遇到一个诡异的问题(后续更新),于是探究了 Runtime 中 Class 的一些细节。该探索过程以 NSClassFromString 为入口,因而需要知道它的具体实现来得到一条严谨的线索。本文则记录了该次探究过程中对 NSClassFromString 的调研,从其汇编…
NSDictionary底层实现原理
NSDictionary使用NSMapTable实现,NSMapTable同样是一个key-value的容器。 上述结构体描述了遍历一个NSMapTable时的一个指针对象,其中包含table对象自身的指针,计数值,和节点指针。 上述结构体中存放的是几个函数指针,用于计算key…
NSDictionary底层实现原理
笔者自语: 当有一个面试官问我NSDictionary底层实现原理,我平时开发的时候只是会用而已,哪里知道它的内部实现原理呀,一脸懵逼的样子,感觉跟那个面试的人相差甚远,现在有空来系统整理一下我自己对NSDictionary内部实现原理的理解,真的理解了对你只有好处没有坏处,永…
iOS底层原理总结 - 探寻KVO本质
对小码哥底层班视频学习的总结与记录。面试题部分,通过对面试题的分析探索问题的本质内容。 首先需要了解KVO基本使用,KVO的全称 Key-Value Observing,俗称“键值监听”,可以用于监听某个对象属性值的改变。 上述代码中可以看出,在添加监听之后,age属性的值在发…
浅谈 iOS 事件的传递和响应过程
如何让 父View 和 子View 同时响应同一事件?默认情况下只会响应 子View 的事件回调。 ... 如果有实现那么就由此 View 响应,如果没有实现,那么就会传递给他的下一个响应者【子view -> 父view,控制器view -> 控制器】, 这里我们可以做一个简单…