Young Area

Thinking will not overcome fear but action will.

内存管理算法 LRU

算法

LRU(Least recent use)的背景 我们知道的是当 CPU 需要读取数据的时候一般是先从内存中读取数据,然后内存从磁盘中读取数据,当内存快要被之前加载的文件耗尽的时候,我们就需要对已经存在的页面进行置换操作,从而提供空间来容纳从磁盘中读取的数据。在学习操作系统的时候书本上为我们介绍过几个缓存策略,分别是OPT,FIFO,LRU,Clock,LFU。这些概念中最常用的,同时...

AFNetworking

iOS 源码探索系列

iOS 网络学习笔记 最近笔者对 iOS 中著名的第三方网络库 AFNetworking 展开了学习,尽管大家都知道它是对 iOS 7 之后苹果发布的新的网络基础库 NSURLSession 的封装,但是到底是个怎么样的封装法,接着笔者在源码的阅读中对此进行了探究。以下仅是个人一点见解,请多多指教。 AFNetworking 3.x 的结构 通过分析目前 Github 上 AFN...

Category

Category (分类) Category 的介绍 分类可以理解成是对一个已有类的功能进行扩展,但是分类主要是针对源码未知的类,一般是对系统的一些常用类进行扩展。如 NSString,Button,Label 等等,简单来说类别是一种为现有的类添加新方法的方式,让这个类能够适应不不同情况的需求。利用 OC 的动态运行时分配机制,分类提供了一种比继承更为简洁的方法来对类进行扩展,无需创建对象...

UITableView 复用

iOS 熟知必会系列

iOS UITableView 学习笔记 日常 App 开发中 UITableView 的使用几乎遍地都是,为了后面更好的使用它深入了解一下还是很有必要滴! UITableView 复用以及优化 UITableView 复用机制 本次的学习中都是假定 UITableView 的大小是整个屏幕的 size。 日常生活中我们滑动 iPhone 通讯录视图的时候会觉得一点...

Runtime

iOS 熟知必会系列

iOS Runtime 学习笔记 除了面试中我们会经常被问到 iOS Runtime 相关知识,作为一个优秀的 iOSer Runtime 这种底层的基础知识应该是熟知必会的,只有对使用的语言充分深入了解,我们才能更加灵活的使用它。 揭秘 Runtime 原理 Runtime 介绍 通过学习编译原理我们知道一般来说高级编程语言想要转换成可执行文件需要先编译成为汇编语言再转换成机...

博客迁移

Hello World, Again

博客迁移啦 新的世界我们再次见面了,之前的博客因为长期没有打理,后台插件也是过分冗余所以今天开始决定放弃了,正式将自己的技术博客迁移到 GitHub Pages 上,尽管打开的时间会比较缓慢但是可拓展性和维护性得到了大大的提升,因此如果你和我有一样的需求话也可以这么做。 迁移的 motivation 之前被青总吐槽了一波原博客内容的垃圾,被喷成不是给人看的博客(原博主要是写了下...