首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
砖
掘友等级
iOS
|
?
描述
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
赞
150
文章 55
沸点 95
赞
150
返回
|
搜索文章
文章
热门
最新
111
yourbrowserdoesnotsupportthevideotag
探秘Runtime - Runtime的应用
__attribute__是一套编译器指令,被GNU和LLVM编译器所支持,允许对于__attribute__增加一些参数,做一些高级检查和优化。 __attribute__的语法是,在后面加两个括号,然后写属性列表,属性列表以逗号分隔。在iOS中,很多例如NS_CLASS_A…
探秘Runtime - Runtime Message Forward
当一个对象的方法被调用时,首先在对象所属的类中查找方法列表,如果当前类中没有则向父类查找,一种找到根类NSObject。如果始终没有找到方法实现,则进入消息转发步骤中。 当一个方法没有实现时,也就是在cache lsit和其继承关系的method list中,没有找到对应的方法…
探秘Runtime - 深入剖析Category
有了之前Runtime的基础,一些内部实现就很好理解了。在OC中可以通过Category添加属性、方法、协议,在Runtime中Class和Category都是通过结构体实现的。 和Category语法很相似的还有Extension,二者的区别在于,Extension在编译期就…
探秘Runtime - Runtime消息发送机制
在OC中方法调用是通过Runtime实现的,Runtime进行方法调用本质上是发送消息,通过objc_msgSend()函数进行消息发送。 例如下面的OC代码会被转换为Runtime代码。 发送消息的第二个参数是一个SEL类型的参数,在项目里经常会出现,不同的类定义了相同的方法…
探秘Runtime - Runtime加载过程
在iOS程序中会用到很多系统的动态库,这些动态库都是动态加载的。所有iOS程序共用一套系统动态库,在程序开始运行时才会开始链接动态库。 the dynamic link editor 除了在项目设置里显式出现的动态库外,还会有一些隐式存在的动态库。例如objc和Runtime所…
探秘Runtime - 剖析Runtime结构体
在OC1.0中,Runtime很多定义都写在NSObject.h文件中,如果之前研究过Runtime的同学可以应该见过下面的定义,定义了一些基础的信息。 之前的Runtime结构也比较简单,都是一些很直接的结构体定义,现在新版的Runtime在操作的时候,各种地址偏移操作和位运…
探秘Runtime - Runtime源码分析
本文基于objc-723版本,在Apple Github和Apple OpenSource上有源码,但是需要自己编译。 重点来了~,可以到我的Github上下载编译好的源码,源码中已经写了大量的注释,方便读者研究。(如果觉得还不错,各位大佬麻烦点个Star😁) Runtime…
探秘 Runtime - Runtime 介绍
Runtime是iOS系统中重要的组成部分,面试也是必问的问题,所以Runtime是一个iOS工程师必须掌握的知识点。 现在市面上有很多关于Runtime的学习资料,也有不少高质量的,但是大多数质量都不是很高,而且都只介绍某个点,并不全面。 这段时间正好公司内部组织技术分享,我…
深入浅出 GCD 线程使用
同步和异步针对的是线程队列,所谓的线程队列可以理解为一组线程的数组。 串行队列: 队列中是事件有序执行,遵循 FIFO(first in first out)的原则,先进入队列的事件先执行。 串行队列创建: 并行队列 并行队列中的事件在逻辑上是一起执行的,但是这是要根据机器 C…
下一页
个人成就
文章被点赞
126
文章被阅读
23,925
掘力值
662
关注了
22
关注者
856
收藏集
2
关注标签
6
加入于
2017-08-22