• 等级
  • 2054447 访问
  • 252 原创
  • 738 转发
  • 729 排名
  • 148 评论
  • 150 获赞

创建CocoaPods的制作过程

使用CocoaPods来管理第三方库实在是方便,在学会了使用CocoaPods后,开始尝试创建一个自己的版本依赖库,当然,迟早要走到这一步的.创建仓库接下来实现一个首页广告循环播放功能,项目名为CLRollingCycleView本地仓库使用Xcode创建一个CLRollingCycleView项目,项目并添加Classes(核心功能)远程仓库在github上同样创建...

2019-05-08 16:20:14

BFTask剖析

github:https://github.com/BoltsFramework/Bolts-ObjC

2019-04-14 22:41:35

图文翔解HashTree

在各种数据结构(线性表、树等)中,记录在结构中的相对位置是随机的。因此在机构中查找记录的时需要进行一系列和关键字的比较。这一类的查找方法建立在“比较”的基础上。查找的效率依赖于查找过程中所进行的比较次数。之前我们介绍的各种基于比较的树查找算法,这些查找算法的效率都将随着数据记录数的增长而下降。仅仅是有的比较慢(时间复杂度为O(n)),有的比较快(时间复杂度是O(logn))而已。这些查找算法的...

2019-04-10 10:39:50

mach-o文件分析

一.先给出一个结构图,大致了解一下内部的结构:image.png主要结构分成三个部分: Header部分:保存了该文件的一些基本信息,如平台,文件类型,加载命令的个数等 loadCommends部分:根据这里的数据来确定内存的分布 Data部分:存放具体的代码和数据 data部分是以段来划分的,segment段类型如下图: 1:__PAGEZERO段:...

2019-04-07 13:33:42

block的变量捕获

先了解一下block的本质1.block本质上也是一个OC对象,它内部也有个isa指针2.block是封装了函数调用以及函数调用环境的OC对象3.block的底层结构如下图所示为了保证block内部能够正常访问外部的变量,block有个变量捕获机制 变量类型 捕获到block内部 访问方式 局部变...

2019-03-31 13:25:35

+load方法和+initialize方法的调用

一.load方法1.+load方法会在runtime加载类、分类时调用2.每个类、分类的+load,在程序运行过程中只调用一次3.调用顺序3.1先调用类的+load,按照编译先后顺序调用(先编译,先调用)3.2调用子类的+load之前会先调用父类的+load3.3.再调用分类的+load,按照编译先后顺序调用(先编译,先调用)4.直接拿IMP执行load方...

2019-03-30 23:50:33

KVC

1.setValue:forKey:的原理setValue:forKey:的原理注意:直接给成员变量赋值是不会触发KVO,但是通过KVC修改成员变量是会触发KVO2.valueForKey:的原理...

2019-03-30 17:28:06

跳跃表原理

最近看了一种数据结构叫做skipList,redis和levelDB都是用了它。SkipList是在有序链表的基础上进行了扩展,解决了有序链表结构查找特定值困难的问题,查找特定值的时间复杂度为O(logn),他是一种可以代替平衡树的数据结构。下面是skipList的一个介绍,转载来的,源地址:http://kenby.iteye.com/blog/1187303,为防止...

2019-03-29 10:36:29

Dijkstra 最短路算法

上周我们介绍了神奇的只有五行的Floyd最短路算法,它可以方便的求得任意两点的最短路径,这称为“多源最短路”。本周来来介绍指定一个点(源点)到其余各个顶点的最短路径,也叫做“单源最短路径”。例如求下图中的1号顶点到2、3、4、5、6号顶点的最短路径。与Floyd-Warshall算法一样这里仍然使用二维数组e来存储顶点之间边的关系,初始值如下。我们还需要用一个一...

2019-03-26 10:40:06

Bellman-Ford 单源最短路径算法

Bellman-Ford算法是一种用于计算带权有向图中单源最短路径(SSSP:Single-SourceShortestPath)的算法。该算法由RichardBellman和LesterFord分别发表于1958年和1956年,而实际上EdwardF.Moore也在1957年发布了相同的算法,因此,此算法也常被称为Bellman-Ford-Moore算法...

2019-03-26 10:15:42

dijkstra算法:寻找到全图各点的最短路径

dijkstra算法介绍:即迪杰斯特拉算法,是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题。迪杰斯特拉算法主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止,是一种广度优先的搜索方法。dijkstra算法原理:最优子路径存在。假设从S→E存在一条最短路径SE,且该路径经过点A,那么可以确定SA子路径一定是S→A的最短路径。证明:反证法。如果子路径SA不是最短的,那么就必...

2019-03-22 11:42:31

最小生成树-Prim算法

Prim算法1.概览普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex(graphtheory)),且其所有边的权值之和亦为最小。该算法于1930年由捷克数学家沃伊捷赫·亚尔尼克(英语:VojtěchJarník)发现;并在1957年由美国计算机科学家罗伯特·普里姆(英...

2019-03-21 13:15:38

最通俗易懂的01背包问题讲解

1、动态规划(DP)  动态规划(DynamicProgramming,DP)与分治区别在于划分的子问题是有重叠的,解过程中对于重叠的部分只要求解一次,记录下结果,其他子问题直接使用即可,减少了重复计算过程。  另外,DP在求解一个问题最优解的时候,不是固定的计算合并某些子问题的解,而是根据各子问题的解的情况选择其中最优的。  动态规划求解具有以下的性质:  最优子结构性质、子问题...

2019-03-21 11:48:06

(七)图的邻接多重表存储法(超详细)

前面讲过,无向图的存储可以使用邻接表,但在实际使用时,如果想对图中某顶点进行实操(修改或删除),由于邻接表中存储该顶点的节点有两个,因此需要操作两个节点。为了提高在无向图中操作顶点的效率,本节学习一种新的适用于存储无向图的方法——邻接多重表。注意,邻接多重表仅适用于存储无向图或无向网。邻接多重表存储无向图的方式,可看作是邻接表和十字链表的结合。同邻接表和十字链表存储图的方法相同,都是独自...

2019-03-20 18:56:46

(六)图的十字链表存储法详解

与邻接表不同,十字链表法仅适用于存储有向图和有向网。不仅如此,十字链表法还改善了邻接表计算图中顶点入度的问题。十字链表存储有向图(网)的方式与邻接表有一些相同,都以图(网)中各顶点为首元节点建立多条链表,同时为了便于管理,还将所有链表的首元节点存储到同一数组(或链表)中。其中,建立个各个链表中用于存储顶点的首元节点结构如图1所示:图1十字链表中首元节点结构示意图从图1可...

2019-03-20 16:46:51

(五)图的邻接表存储法详解

通常,图更多的是采用链表存储,具体的存储方法有3种,分别是邻接表、邻接多重表和十字链表。本节先讲解图的邻接表存储法。邻接表既适用于存储无向图,也适用于存储有向图。在具体讲解邻接表存储图的实现方法之前,先普及一个"邻接点"的概念。在图中,如果两个点相互连通,即通过其中一个顶点,可直接找到另一个顶点,则称它们互为邻接点。邻接指的是图中顶点之间有边或者弧的存在。邻接表存储图的实现方式是,...

2019-03-18 11:49:59

(四)图的顺序存储结构及C语言实现

使用图结构表示的数据元素之间虽然具有“多对多”的关系,但是同样可以采用顺序存储,也就是使用数组有效地存储图。使用数组存储图时,需要使用两个数组,一个数组存放图中顶点本身的数据(一维数组),另外一个数组用于存储各顶点之间的关系(二维数组)。存储图中各顶点本身数据,使用一维数组就足够了;存储顶点之间的关系时,要记录每个顶点和其它所有顶点之间的关系,所以需要使用二维数组。不同类型的图,存储的方...

2019-03-18 11:38:50

(三)什么是生成树,生成树(生成森林)详解

在学习连通图的基础上,本节学习什么是生成树,以及什么是生成森林。对连通图进行遍历,过程中所经过的边和顶点的组合可看做是一棵普通树,通常称为生成树。图1连通图及其对应的生成树如图1所示,图1a)是一张连通图,图1b)是其对应的2种生成树。连通图中,由于任意两顶点之间可能含有多条通路,遍历连通图的方式有多种,往往一张连通图可能有多种不同的生成树与之对应。连通图...

2019-03-18 11:38:05

(二)什么是连通图,(强)连通图详解

前面讲过,图中从一个顶点到达另一顶点,若存在至少一条路径,则称这两个顶点是连通着的。例如图1中,虽然V1和V3没有直接关联,但从V1到V3存在两条路径,分别是V1-V2-V3和V1-V4-V3,因此称V1和V3之间是连通的。图1顶点之间的连通状态示意图无向图中,如果任意两个顶点之间都能够连通,则称此无向图为连通图。例如,图2中的无向图就是一个连...

2019-03-18 11:37:24

(一) 什么是图存储结构

阅读:1,220作者:解学武(数据结构)图的存储结构完全攻略图什么是连通图我们知道,数据之间的关系有3种,分别是"一对一"、"一对多"和"多对多",前两种关系的数据可分别用线性表和树结构存储,本节学习存储具有"多对多"逻辑关系数据的结构——图存储结构。图1图存储结构示意图图1所示为存储V1、V2、V3、V4的图结构,从图中可以清楚的看...

2019-03-18 11:36:52

Ansel_m

阿里天猫
关注
  • 互联网·电子商务
  • 中国 浙江省 杭州市
奖章
  • 持之以恒
  • 1024勋章