首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
亮亮不想说话95888
掘友等级
iOS 开发工程师
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
5
文章 5
沸点 0
赞
5
返回
|
搜索文章
最新
热门
iOS 类拓展分析、load_iamges分析、initalize分析
通过之前几篇对read_iamges的分析,我们知道了程序在启动运行时的流程,知道了什么是 懒加载类 和 非懒加载类 和其加载过程,以及搭配 非懒加载分类 和 懒加载分类 时的几种加载情况。 1. 类拓展分析 类拓展: 又叫匿名的分类。可以给当前类添加成员变量、属性和方法,在日…
数据结构与算法之如何基于顺序存储/链式存储不同角度设计一个栈
前面几篇,我们学习了关于线性表的顺序存储以及链式存储,并对链式存储方式的单向链表、单向循环链表、双向链表和双向循环链表的基本操作有了一定的了解。而在我们的日常的工作中还常听到一个词 —— 栈。 那么栈的结构是什么样的呢?如何基于顺序存储/链式存储两个不同角度设计一个栈呢?接下来…
iOS 分类的加载
1. Runtime 面试题 答 :动态创建的类,可以添加成员变量,已经注册好的类,不能动态添加成员变量。 通过之前的学习,知道,成员变量是存储在Class中class_rw_t *data()中的ro中的ivar_list_t * ivars里面。如下源码: 通过上一篇的学习…
数据结构与算法之线性表算法练习
设计一个算法,将链表中所有节点的链接方向"原地旋转",即要求仅仅利用原表的存储空间. 换句话说,要求算法空间复杂度为O(1); 假设A中的n个元素保存在一个一维数组中,请设计一个尽可能高效的算法,找出数组元素中的主元素,若存在主元素则输出该元素,否则输出-1。
iOS 类的加载分析
1. objc_init分析 可以通过修改判断条件,打印所有的环境变量,如上源码中注释部分。我们也可以在lldb上用命令export OBJC_HELP=1来打印环境变量。 设置OBJC_DISABLE_NONPOINTER_ISA 为 YES:设置nonpointer_isa…
iOS 应用程序加载
1. APP 加载分析 动态库:程序编译并不会链接到目标代码中,而是程序运行时才被载入。 优势:减少打包之后APP的大小,共享内容,节约资源,通过更新动态库,达到更新程序的目的。 通知监听dyld的main,然后进入main函数。 先读取image, addImage()读取加…
数据结构与算法之双向链表和双向循环链表
1. 双向链表 一般在创建双线链表时,可以根据个人喜好是否添加一个头结点来指向首元节点。添加头节点时,在对双向链接做插入删除等一列操作时,不需要考虑首元节点的特殊情况。 2. 双向循环链表 在创建双向循环链表时基本和双向链表的创建一样,初始化一个头节点来标志链表的信息,不同的是…
数据结构与算法之线性表单向循环链表
1. 单向循环链表概念 是单链表的一个变形,链表中最后一个节点的next域不再为None,而是指向链表的头节点。 2. 单向循环链表的操作 2.1. 单向循环链表的创建 而链表找尾,可以有两种写法,一种为for循环,一种为定义一个变量记录。 2.2. 单向循环链表的遍历 2.3…
数据结构与算法之基础篇
对于很对人而言,“算法”和“数据结构”给人的第一印象就是很难懂,对于算法小白的我来说,更是一脸问号,但是作为一个优秀的开发者,不会数据结构和算法,还算是优秀发开发者吗?那么什么是数据?什么是数据结构?什么是算法?一个编写一个好的算法呢?一个好的算法怎么测评呢?接下来,来分析一下…
iOS 方法动态决议和消息转发机制
1. 动态方法决议 在经过_class_resolveMethod方法后,在进行一次retry,重新进行一遍方法的查找流程,而只有一次动态方法解析的机会就是在_class_resolveMethod方法中。 由此:我们可以在+(BOOL)resolveInstanceMetho…
下一页
个人成就
文章被点赞
44
文章被阅读
33,272
掘力值
1,134
关注了
6
关注者
45
收藏集
2
关注标签
13
加入于
2019-12-14