首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
hello小李
掘友等级
测试
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
49
文章 43
沸点 6
赞
49
返回
|
搜索文章
最新
热门
Objc源码——对象创建alloc和init
注:本文分析基于objc4-750源码进行的。 1.如果没有自定义allocWithZone。 这里是通过判断class_rw_t* data()中的flags中的值的第16位,来判断是重写了allocWithZone。关于class_rw_t和flags我会在其它文章解释。 …
iOS 从零到一搭建组件化项目框架
随着公司业务需求的不断迭代发展,工程的代码量和业务逻辑也越来越多,原始的开发模式和架构已经无法满足我们的业务发展速度了,这时我们就需要将原始项目进行一次重构大手术了。这时我们应该很清晰这次手术的动刀口在哪,就是之前的高度耦合的业务组件和功能组件,手术的目的就是将这些耦合拆分成互…
七种常见的数组排序算法整理(C语言版本)
排序算法是否稳定:相同元素的相对在排序前后是否会发生改变,如果会,就是不稳定的,否则就是稳定的。 冒泡排序原理很容易理解,就是重复地走访过要排序的元素列,依次比较两个相邻的元素,顺序不对就交换,直至没有相邻元素需要交换,也就是排序完成。 这个算法的名字由来是因为越大的元素会经由…
iOS 常用的加密算法和网络安全问题的了解
AES加密算法涉及4种操作:字节替代(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)和轮密钥加(AddRoundKey)。下图给出了AES加解密的流程,从图中可以看出: 正是由于这几点(再加上加密算法与解密算法每步的操作互逆)保证了算法的正确性…
iOS 关于KVO的一些总结
KVO是基于观察者模式来实现的。 观察者模式:一个目标对象管理所有依赖于它的观察者对象,并在它自身的状态改变时主动通知观察者对象。这个主动通知通常是通过调用各个观察者对象所提供的接口方法来实现的。观察者模式较完美地将目标对象与观察者对象解耦****。 KVO全称为Key-Val…
iOS——runtime(7):日志打印系统分析
用于更好的观察代码的属性,有了这些信息的提示,我们能更好的了解runtime的原理。那么runtime本身有没有类似的打印日志信息用于调试或者观察呢,答案是肯定的,笔者暂时给其起个名字叫“日志打印系统”。这个名字不是笔者随便提出的,而是经过对其代码分析后得出的。因为这套系统是有…
iO——runtime(6):初识class_rw_t
上一篇文章中我们了解到hasDefaultAWZ()和setHasDefaultAWZ ()是data()的flag,而data()返回的其实是一个名为class_rw_t的结构体。 可以推断,class_rw_t是由class_data_bits_t中的bits第3位到46位…
iOS——runtime(5):allocWithZone剖析
会发现走逻辑B。那大家肯定能猜到,肯定是什么时候调用了某个函数,导致cls->ISA()->hasCustomAWZ()变成了true。本文将带大家了解CustomAWZ这个“属性”设置的过程。 因此,这段代码有是我们熟悉的,拿到了isa_t的shiftcls位域,改位域存储了…
iOS——runtime(4):浅析对象的创建
这段代码相信大家一眼就能看懂。那么,在代码 执行的过程中究竟发生了什么,大家是否了解呢。本文就带大家研究一下alloc函数的实现过程。 用于判断objective-c 版本,是不是2.0,目前我们使用的objective-c版本都是此版本。 所以fastpath的含义是,为1的…
iOS ——runtime(3):浅析NSObject对象的isa_t
对于U1联合体,s占11字节,n占4字节,d占8字节,因此其至少需1字节的空间。然而其实际大小并不是11,用运算符sizeof测试其大小为16。这是因为这里存在字节对齐的问题,11既不能被4整除,也不能被8整除。因此补充字节到16,这样就符合所有成员的自身对齐了。从这里可以看出…
下一页
个人成就
文章被点赞
218
文章被阅读
67,105
掘力值
1,516
关注了
24
关注者
1,744
收藏集
0
关注标签
13
加入于
2019-07-09