首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
初心
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
0
文章 0
沸点 0
赞
0
返回
|
搜索文章
最新
热门
OC底层原理(14)-- KVO 下 (自定义KVO进阶)
还记得前一篇有提到 LGPerson 是 NSKVONotifying_LGPerson 的父类,那在这里是不是就是要把子类的消息发送给父类,要是消息的发送,这里便要用到 objc_msgSendSuper, 因为是子类与父类的关系,接下来我们来验证一下。 在 NSObject…
OC 底层原理(13)-- KVO (上)(基本使用,自定义KVO)
代码里面的使用场景,可以根据自己的理解完善场景。 这时 context 就起作用了,我们可以将 context 理解为tag,我们可以为每个keyPath都设一个key,以便快速定位观察。 第三部分是返回上一页到 LGViewController 此时就跟第一部分打印的一样,因…
数据结构与算法(6)- 队列
队列我们可以理解为单行道的马路上的车辆,通过收费站时,排在前面的车辆先通过,排在后面的车辆后通过,通过收费站的我们叫出队列,后面新加入队列的叫入队。 队列的特点:先进先出,队列也是一种操作受限的线性表数据结构 它具有先进先出的特性,支持队尾插入元素,在队头删除元素。 入队 将一…
数据结构与算法(5)- 栈
8、若栈不为空,则删除S的栈顶元素,用e返回其值. 并返回OK,否则返回ERROR 什么是递归?若在一个函数,过程或数据结构定义的内部又直接(或间接)出现定义本身的应用;则称为他们是递归的,或者是递归定义。 对于类似这种复杂问题,若能够分解成几个简单且解法相同或类似的子问题来求…
OC底层原理(12)-KVC
这个过程中主要用成员变量来探索,为什么要使用成员变量呢,因为属性在赋值的过程中本来就会生成getter 和 setter 方法了,所以再用属性探索KVC赋值,会不好分辩。 下面将重写方法全都注释掉,如下,再来打印成员变量的值,再将 accessInstanceVariables…
OC底层原理(11)-部分知识点总结(随记)
runtime 是由C、C++、汇编实现的一套API,为OC语言加入了面向对象,运行时的功能。 运行时(runtime)是指将数据类型的确定由编译时推迟到了运行时。如,extension-category 的区别 平时编写的OC代码,在程序运行过程中,其实最终会转换成Runti…
数据结构与算法(4)- 线性链表算法练习
将2个递增的有序链表合并为一个有序链表; 要求结果链表仍然使用两个链表的存储空间,不另外占用其他的存储空间. 表中不允许有重复的数据 (1)假设待合并的链表为La和Lb,合并后的新表使用头指针Lc(Lc的表头结点设为La的表头结点)指向. Pa 和 Pb 分别是La,Lb的工作…
OC底层原理(10) - 方法查找流程(随记)
if (cache) 这个判断是不用看的,因为上面传进来的时候传的是NO。 在父类的父类也就是父类的元类里找到了。 看到这赋值了 objc_defaultForwardHandler ,并且上这句的上面看到了objc_defaultForwardHandler的实现,里面竟然就…
OC底层原理(9)- runtime简介,方法的本质(随记)
1、概述:由 c、c++、汇编混编写成的为OC提供运行时功能的一套api。 这是因为我们OC调用方法的过程就是通过发送消息去找函数实现的过程,只不过在底层封装了这一过程。所以如果我们直接就调用函数,就可以通过函数名这个指针对标到这一函数。 为什么要用到汇编呢?因为性能:1)汇编…
数据结构与算法(3)- 双向链表
一、双向链表1、双向链表结构1)双向链表结构定义2)创建双向链表3)打印循环链表的元素4)双向链表插入元素5)删除双向链表指定位置上的结点6)删除双向链表指定值的结点删除思想跟第五差不多,但是实现方法
下一页
个人成就
文章被点赞
16
文章被阅读
19,565
掘力值
531
关注了
5
关注者
8
收藏集
0
关注标签
12
加入于
2020-03-02