首页
学习
活动
专区
工具
TVP
发布

老沙课堂

专栏作者
27
文章
17464
阅读量
12
订阅数
如何利用CocoaPods创建私有库
创建私有库 创建两个仓库, 一个是私有库容器,一个是代码库 私有库:存放若干个代码库的信息 添加私有库容器 pod repo add 库名称 地址 查看添加的私有库容器 pod repo 创建代码库,并且clone代码到本地 在代码库创建一下文件 代码文件夹,单个仓库名.podspec 还有 .swift-version文件 修改.swift-version信息 echo "5.0" > .swift-version 创建podspec文件模板 pod spec create 单个仓库名 Pod::Spec
老沙
2020-05-21
1.2K0
数据结构与算法(十二) 红黑树
•节点是有颜色的Red/Black•根节点必须是Black•叶子节点必须是Black•红黑树的叶子节点会自动将度为0 或者度为1的节点的度自动补充为2,补充的节点称之为外部节点•外部节点是空想出来的,代码中不会实现•red节点的子节点都是black色•从任意一节点到叶子节点的所有路径包含的black节点数目相同•这里说的叶子节点包含假想出来的叶子节点
老沙
2019-10-23
5100
数据结构与算法(十一)B树
•1个节点可以存储超过2个元素、可以拥有超过2个子节点•拥有二叉搜索树的一些特质(小的子节点在左面 大的子节点在右面)•平衡,每个节点的所有子树高度一致•比较矮
老沙
2019-10-19
4670
据结构与算法(十) AVL树
因为无法改变添加删除顺序(用户操作决定),所以在每次操作之后,让二叉树达到平衡状态。
老沙
2019-10-15
5540
数据结构与算法(九)二叉搜索树的删除操作
•前驱节点:中序遍历时的前一个节点•如果左子树存在,从该节点的左子节点的最右的节点。•如果左子树 == null && 父节点!= null 父节点为父节点遍历,一直到节点关系发生改变。如下图所示。•如果左子树 == null && 父节点== null ,没有前驱节点。
老沙
2019-10-15
8470
据结构与算法(八) 二叉树的练习
•设定levelSize初始值为1(只有一个根节点)•当进行while循环的时候 levelsize-- 操作。因为levelSize和每层节点个数相等。所以当levelSize为0的时候,下一个levelSize的大小就等于此时在队列中的元素个数。•当levelSize== 0的时候 •进行赋值下一层的个数 levelSize = queue.size()•此时代表一个层级遍历结束 height++
老沙
2019-10-15
5390
数据结构与算法(六) 二叉树遍历
•任意一个节点的值都大于其左子树的值•任意一个节点的值都小于其右子树的值•他的左右子树也是一颗二叉搜索树•二叉搜索树可以大大提高效率(搜索和添加删除时间复杂度都是logn)•二叉搜索树的元素必须是具备可比较性•自定义类型需要指定比较方式•不允许为null•二叉树没有索引的概念
老沙
2019-10-11
4640
数据结构与算法(五) 队列
•先进先出原则(First In First Out) FIFO•队尾(rear):只能进行入队操作(enQueue)->添加元素•队头(front):只能进行出队(deQueue) ->取出元素•一般底层由双链表来实现
老沙
2019-10-11
4130
数据结构与算法(六) 二叉树
•每个节点的度最大为2。•左子树和右子树是有序的。•即使某个节点只有一颗子树,也要区分是左右子树。
老沙
2019-10-11
3990
数据结构与算法(四)栈
栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
老沙
2019-10-09
4110
数据结构与算法(三)链表
•插入操作的时候 如果想在角标1添加,要找到角标1的上一个元素。•边界问题 例如首个元素添加 以及最后一个元素添加
老沙
2019-09-30
3550
TaggedPointer
由于test 修饰为nonatomic 所以是线程不安全的。当多条线程同时访问,造成多次release ,所以坏内存访问。
老沙
2019-09-29
3410
isa详解(一)isa结构
为什么要用union以及位运算呢。因为在计算机中为二进制。位运算是最快速的计算方式 union C++ 中的共用体。顾名思义 就是在union 中 公用一个内存地址 。
老沙
2019-09-28
1.3K0
isa详解(二)cache和散列表
源码中查找 objc_destructinstance 销毁一个实例对象。发现需要进行相关判断。所以如果没有的话。释放更快
老沙
2019-09-28
5080
消息转发及super
**消息转发的时候。由于oc的底层原理是消息机制,所以可以添加c语言函数等 **
老沙
2019-09-28
5880
super(二) 以及内存分布
在ViewController 书写以下代码。问是否能编译通过,如果可以输出什么是什么?
老沙
2019-09-28
6000
RunLoop详解
线程刚创建的时候没有Ru nLoop对象,RunLoop会在第一次获取它的时候创建
老沙
2019-09-28
5810
多线程(一) 有关死锁以及串行并发同步异步概念
performSelector: withObject: 底层调用[self msgSend];
老沙
2019-09-28
6910
Objective 锁
由于锁是自旋锁,线程不会休眠,所以当低优先级线程先对操作进行Lock造作后,CPU调度高优先级线程造作,由于低优先级别UnLock就调用高优先级线程。高优先级无法处理该操作,而高优先级线程一直调用CPU资源, 系统等待高优先级线程执行完毕后才给低优先级线程资源。
老沙
2019-09-28
6110
iOS读写安全
给属性添加atomic 可以保证属性的setter和getter原子性操作,也就是保证setter和getter内部是线程同步的
老沙
2019-09-28
8630
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档