摘要:
养成记笔记的习惯,对于一个软件工程师来说,我觉得很重要。记得在知乎上看到过一个问题,说是人类最大的缺点是什么?我个人觉得记忆算是一个缺点。它就像时间一样,会自己消散。 前言 终于写完了 AFNetworking 的源码解读。这一过程耗时数天。当我回过头又重头到尾的读了一篇,又有所收获。不禁让我想起了
阅读全文
posted @ 2016-09-02 11:24
马在路上
阅读(6485)
推荐(3)
摘要:
MJRefresh这个刷新控件是一款非常好用的框架,我们在使用一个框架的同时,最好能了解下它的实现原理,不管是根据业务要求在原有的基础上修改代码,还是其他的目的,弄明白作者的思路和代码风格,会受益匪浅。 前言 随着开发经验的不断积累,个人的能力也会不断提高。每个人的进步都会有一个过程,这个过程就好比
阅读全文
posted @ 2016-08-31 17:21
马在路上
阅读(1855)
推荐(2)
摘要:
AFNetworking的源码解读马上就结束了,这一篇应该算是倒数第二篇,下一篇会是对AFNetworking中的技术点进行总结。 前言 "上一篇" 我们总结了 UIActivityIndicatorView UIRefreshControl UIImageView 这3个控件的分类。那么这一篇就总
阅读全文
posted @ 2016-08-30 12:00
马在路上
阅读(1866)
推荐(1)
摘要:
我们应该看到过很多类似这样的例子:某个控件拥有加载网络图片的能力。但这究竟是怎么做到的呢?看完这篇文章就明白了。 前言 这篇我们会介绍 AFNetworking 中的3个UIKit中的分类。 UIActivityIndicatorView UIRefreshControl UIImageView 。
阅读全文
posted @ 2016-08-29 16:10
马在路上
阅读(1895)
推荐(3)
摘要:
让我们的APP像艺术品一样优雅,开发工程师更像是一名匠人,不仅需要精湛的技艺,而且要有一颗匠心。 前言 AFNetworkActivityIndicatorManager 是对状态栏中网络激活那个小控件的管理。在平时的开发中,我们很可能忽略了它的存在。然而,实现对它的管理,让我们的APP更符合人机交
阅读全文
posted @ 2016-08-27 15:02
马在路上
阅读(3413)
推荐(2)
摘要:
ios开发中,经常会用到数据库sqlite的知识,除了增,删,改,查之外,我们说说如何获取数据库中有多少表和表相关的内容。 前言 跟数据库使用相关的一般的增删改查的语句,这里就不做解释了。在网上有很多。记得之前项目中曾经有这样的一个场景。一个数据库中存在了好几个表。假定我们不知道表名的前提下来获取这
阅读全文
posted @ 2016-08-26 16:18
马在路上
阅读(3523)
推荐(0)
摘要:
AFImageDownloader 这个类对写DownloadManager有很大的借鉴意义。在平时的开发中,当我们使用UIImageView加载一个网络上的图片时,其原理就是把图片下载下来,然后再赋值。这也是AFImageDownloader这个类的核心功能。 前言 AFImageDownload
阅读全文
posted @ 2016-08-25 17:19
马在路上
阅读(1714)
推荐(0)
摘要:
记录一下从现在到未来看过的所有的值得一看且十分精彩的电影,一来希望以后能够从新观看几次,二来能够给各路朋友一个电影参考 1.致命ID 这部电影是我看过的人格分裂的电影中,最精彩的一部,没有之一。借用影评中的话来说: 这部电影实在太经典了,一个无用镜头都没有,且悬疑精彩,所有情节都有伏笔,所有伏笔都有
阅读全文
posted @ 2016-08-23 09:15
马在路上
阅读(487)
推荐(0)
摘要:
这篇我们就要介绍AFAutoPurgingImageCache这个类了。这个类给了我们临时管理图片内存的能力。 前言 假如说我们要写一个通用的网络框架,除了必备的请求数据的方法外,必须提供一个下载器来管理应用内的所有的下载事件。至于下载器能够提供的功能,在此先不做说明。但在 AFAutoPurgin
阅读全文
posted @ 2016-08-22 17:02
马在路上
阅读(1410)
推荐(1)
摘要:
AFHTTPSessionManager相对来说比较好理解,代码也比较短。但却是我们平时可能使用最多的类。 "AFNetworking 3.0 源码解读(一)之 AFNetworkReachabilityManager" "AFNetworking 3.0 源码解读(二)之 AFSecurityPo
阅读全文
posted @ 2016-08-20 16:36
马在路上
阅读(2288)
推荐(0)
摘要:
前言 HTTP Method的历史: 1. HTTP 0.9 这个版本只有 方法 2. HTTP 1.0 这个版本有 `HEAD POST`这三个方法 3. HTTP 1.1 这个版本是当前版本,包含 `HEAD POST OPTIONS PUT DELETE TRACE CONNECT`这8个方法
阅读全文
posted @ 2016-08-20 09:08
马在路上
阅读(35410)
推荐(4)
摘要:
本篇是 源码解读的第五篇了。 "AFNetworking 3.0 源码解读(一)之 AFNetworkReachabilityManager" "AFNetworking 3.0 源码解读(二)之 AFSecurityPolicy" "AFNetworking 3.0 源码解读(三)之 AFURLR
阅读全文
posted @ 2016-08-19 14:07
马在路上
阅读(9802)
推荐(6)
摘要:
在ios开发中,难免会用到helper的思想。这篇就简单讲解下关于helper的简单实用方法。 假设我们要做一个这样的界面: 会议分为四种情况: 未召开 正在召开 已结束 已取消 再看看逻辑关系: 编程联想: 当我们要开发某一种功能的时候,有的同学可能一上来就写代码,由于有一定的经验,可能很快就实现
阅读全文
posted @ 2016-08-15 17:18
马在路上
阅读(3230)
推荐(1)
摘要:
第一章 项目风险管理概论 1. 请简述风险的内涵 可以把风险简单定义为未来结果的不确定性,可分为广义的和狭义的风险。 广义风险:强调了风险表现为不确定性,说明风险产生的结果可能带来损失,获利或是无损失也无获利。广义风险适用于金融风险分析。 狭义风险:强调了风险表现为损失的不确定性,说明风险只能表现出
阅读全文
posted @ 2016-08-14 22:54
马在路上
阅读(1020)
推荐(0)
posted @ 2016-08-13 12:01
马在路上
阅读(3)
推荐(0)
摘要:
ios开发 @property 和 Ivar 的区别 @property 属性其实是对成员变量的一种封装。我们先大概这样理解: Ivar Ivar可以理解为类中的一个变量,主要作用是用来保存数据的。 ==================================================
阅读全文
posted @ 2016-08-12 11:41
马在路上
阅读(792)
推荐(0)
摘要:
本篇是AFNetworking 3.0 源码解读的第四篇了。 AFNetworking 3.0 源码解读(一)之 AFNetworkReachabilityManager AFNetworking 3.0 源码解读(二)之 AFSecurityPolicy AFNetworking 3.0 源码解读
阅读全文
posted @ 2016-08-11 10:52
马在路上
阅读(4758)
推荐(0)
摘要:
这篇就讲到了跟请求相关的类了 关于AFNetworking 3.0 源码解读 的文章篇幅都会很长,因为不仅仅要把代码进行详细的的解释,还会大概讲解和代码相关的知识点。 上半篇: URI编码的知识 关于什么叫URI编码和为什么要编码,请看我转载的这篇文章 url 编码(percentcode 百分号编
阅读全文
posted @ 2016-08-08 08:48
马在路上
阅读(6114)
推荐(2)
摘要:
原文地址:http://www.cnblogs.com/leaven/archive/2012/07/12/2588746.html http://www.imkevinyang.com/2009/08/%E8%AF%A6%E8%A7%A3javascript%E4%B8%AD%E7%9A%84ur
阅读全文
posted @ 2016-07-29 16:44
马在路上
阅读(4054)
推荐(0)
摘要:
在我们平时的开发中,对网络连接安全方面所做的努力,应该占据很重要的位置。 在解释AFSecurityPolicy之前,我们先把基础的http/https 知识简单的普及一下。获取这方面的信息可通过这本书:图解HTTP HTTP: 1.HTTP协议用于客户端和服务器端之间的通信 2.通过请求和相应的交
阅读全文
posted @ 2016-07-29 09:05
马在路上
阅读(6955)
推荐(0)
摘要:
实现类似这样的效果,可以滚动大概有两种实现方案 1. 使用scrollview来实现 2. 使用UICollectionView来实现 第一种比较简单,而且相对于性能来说不太好,于是我们使用第二种方案 UICollectionView 的基础知识再次就不做说明了,在网上随便一搜都是一大把,我们就说说
阅读全文
posted @ 2016-07-22 18:17
马在路上
阅读(2810)
推荐(0)
摘要:
做ios开发,AFNetworking 这个网络框架肯定都非常熟悉,也许我们平时只使用了它的部分功能,而且我们对它的实现原理并不是很清楚,就好像总是有一团迷雾在眼前一样。 接下来我们就非常详细的来读一读这个框架的代码,我们的目标就是理解了它的思想之后,能够明白我们的请求是如何实现的,我们的代码哪里还
阅读全文
posted @ 2016-07-19 16:00
马在路上
阅读(13520)
推荐(2)
摘要:
我们已经知道如何使用进程来做一些事情了,然而 它并不是在什么地方都是最适合的。 我们看看进程的缺点是什么: 线程隆重登场 1. 如何创建线程 创建线程可以使用多种线程库,在此我们使用最流行的一种:POSIX线程库,也叫pthread。 假设有两个函数 这两个函数都返回了void指针,因为void指针
阅读全文
posted @ 2016-07-15 16:16
马在路上
阅读(855)
推荐(0)
摘要:
源码下载地址:https://github.com/renzifeng/ZFPlayer 之前自己实现过一个模仿百思不得姐的demo https://github.com/agelessman/FFmpegAndKxmovieDemo 由于有朋友推荐,看了下ZFPlayer,觉得功能和封装都写的很好
阅读全文
posted @ 2016-07-14 13:26
马在路上
阅读(8499)
推荐(2)
摘要:
本片为转载内容,主要是以后自己看起来方便一些 原文地址: iOS音视频实现边下载边播放 其实音视频本地缓存的思想都差不多,都需要一个中间对象来连接播放器和服务器。 近段时间制作视频播放社区的功能,期间查找了不少资料,做过很多尝试,现在来整理一下其中遇到的一些坑.由于考虑到AVPlayer对视频有更高
阅读全文
posted @ 2016-07-13 18:16
马在路上
阅读(13420)
推荐(0)
摘要:
我们已经知道如何使用I/O与文件通信,还知道了如何让同一计算机上的两个进程进行通信,这篇文章将创建具有服务器和客户端功能的程序 互联网中大部分的底层网络代码都是用C语言写的。 网络程序通常有两部分组成:服务器和客户端。 工具介绍: telnet 为了测试功能,我们使用一个叫做telnet的客户端程序
阅读全文
posted @ 2016-07-13 09:15
马在路上
阅读(8357)
推荐(2)
摘要:
在使用swfit写代码的过程中,使用了下oc写的字典转模型,发现有些属性转不成功,就萌生了阅读源码的想法。 其实一直都知道Runtime机制,但并没有系统的学习,可能是因为平时的使用比较少,无意间在github上看到了YYModel ,粗略的看了下源码,发现有大量的c方面的知识,就产生了很大的兴趣,
阅读全文
posted @ 2016-07-07 17:50
马在路上
阅读(785)
推荐(0)
摘要:
在上篇讲解了如何创建和调用进程 c 进程和系统调用 这篇文章就专门讲讲进程通信的问题 先来看一段下边的代码,这段代码的作用是根据关键字调用一个Python程序来检索RSS源,然后打开那个URL 我们先看看进程内部是什么样子的 进程含有它内部运行的程序,还有栈和堆的数据空间。除此之外,它还要记录数据流
阅读全文
posted @ 2016-07-06 17:44
马在路上
阅读(2770)
推荐(2)
摘要:
好了,之前的博文中详细的解释了一些辅助的类和辅助的函数,接下来就是使用它们来实现酷炫功能的时候,正所谓磨刀不误砍柴工啊 我们先把总的功能罗列出来 1. json转字典 + (NSDictionary *)_yy_dictionaryWithJSON:(id)json 2. json转模型 + (in
阅读全文
posted @ 2016-07-02 15:07
马在路上
阅读(1169)
推荐(1)
摘要:
这一篇博客讲解进程和系统调用相关的知识 有这样一个场景,我需要输入一串文字,然后把我输入的文字加上一个本地的时间戳 保存在一个文件中,可以初步理解为一个备忘录也行 程序运行的结果是生成了一个文件 但有时候systemt() 函数也会是不安全的 修改上边的代码,然后会得到这样的结果 列出了根目录下的内
阅读全文
posted @ 2016-07-01 17:20
马在路上
阅读(963)
推荐(0)
摘要:
c 中内置了很多高级的函数,我们先使用排序函数看一下 输出结果为 为了能使这个qsort排序函数适应很多种排序情况,需要传入一个排序规则函数当做参数。 下边介绍一种函数指针数组的使用情况 假如我们要写一个群发邮件的程序,向不同的人发送不同类型的内容,很自然的想到,我们用struct 来实现 我们使用
阅读全文
posted @ 2016-06-30 15:16
马在路上
阅读(671)
推荐(1)
摘要:
简单的通过一个寻找嫌疑人的小程序 来演示二叉树的使用 运行程序,我们来查看打印信息 然而,表面上看这段代码没什么问题,其实有一部分存储器没事释放的,下边我们使用Valgrind工具来看一下 Valgrind 可以在这里下载http://valgrind.org/downloads/current.h
阅读全文
posted @ 2016-06-28 16:18
马在路上
阅读(445)
推荐(0)
摘要:
接下来我们继续向下看 这是一个c的结构体,在c中 void * 相当于 oc 中的 id 类型 那么 为什么使用c的结构体呢,最主要的使用场景就是我们需要同时使用多个参数的情况下,可以使用c的结构体 上边的代码的主要作用是 根据 一个 id 类型的_value 一个 id 类型的_key 和_con
阅读全文
posted @ 2016-06-22 19:18
马在路上
阅读(1140)
推荐(0)
摘要:
如果你想将你开发的控件与别人分享,一种方法是直接提供源代码文件。然而,这种方法并不是很优雅。它会暴露所有的实现细节,而这些实现你可能并不想开源出来。此外,开发者也可能并不想看到你的所有代码,因为他们可能仅仅希望将你的这份漂亮代码的一部分植入自己的应用中。 另一种方法是将你的代码编译成静态库(libr
阅读全文
posted @ 2016-06-18 15:11
马在路上
阅读(563)
推荐(0)
摘要:
1. 这是一个gps 数据过滤的小工具,目的是过滤到gps数据中不符合要求的数据,然后转为json 数据 需要两个小工具 bermuda.c > 过滤一定范围的数据 geo2json.c > 将gps 数据转换成json 格式 指的注意的是 需要在这两个文件的可执行文件中间建立连接管道 先看 ber
阅读全文
posted @ 2016-06-16 17:30
马在路上
阅读(676)
推荐(0)
摘要:
本篇主要介绍的是 在真正转之前的几个辅助函数 这个函数的目的 是 把 _YYModelPropertyMeta.isCNumber == YES 的情况转成NSNumber 下边这个方法是 把 NSNumber 赋值给 原有c 属性 下边的这个方法是核心方法, 把值 赋值给model 需要的参数 有
阅读全文
posted @ 2016-06-16 11:50
马在路上
阅读(675)
推荐(0)
摘要:
数组变量和指针变量有一点小小的区别 所以把数组指针赋值给指针变量的时候千万要小心 加入把数组赋值给指针变量,指针变量只会包含数组的地址信息 而对数组的长度一无所知 相当于指针丢失了一部分信息,我们把这种信息的丢失称为退化 只要把数组当做参数传递给函数,数组免不了退化为指针 但需要记清楚代码中那些地方
阅读全文
posted @ 2016-06-14 18:12
马在路上
阅读(881)
推荐(0)
摘要:
1 int main() 2 { 3 // 算牌器 4 char char_name[3]; 5 int count = 0; 6 7 do { 8 9 printf("请输入牌名: \n"); 10 scanf("%2s",char_name); 11 int valu...
阅读全文
posted @ 2016-06-14 16:19
马在路上
阅读(242)
推荐(0)
摘要:
_YYModelMeta 这个内部的类主要是对这个类的描述。包含了和此类转换相关的数据。 + (NSDictionary *)modelCustomPropertyMapper { return @{@"userID" : @"id", @"idString" : @"idstr", } 2. 多个
阅读全文
posted @ 2016-06-13 16:13
马在路上
阅读(2732)
推荐(0)
摘要:
本篇文章主要介绍 _YYModelPropertyMeta 前边的内容 首先先解释一下前边的辅助函数和枚举变量,在写一个功能的时候,这些辅助的东西可能不是一开始就能想出来的,应该是在后续的编码过程中 逐步添加的。 这行代码用到了C语言的内联函数 内联函数: 是用inline修饰的函数,内联函数在代码
阅读全文
posted @ 2016-06-12 17:37
马在路上
阅读(1410)
推荐(0)