JQCollectionViewAlignLayout

一个基于流式布局 (flow layout) 的自定义布局对象。支持设置 NS&UICollectionView 水平及竖直方向的对齐方式,以及从右到左及从左到右的排列顺序。

阅读全文 »

0. Rebase Introduction

git checkout -b bugFix
# edit and add
git commit
git checkout master
# edit and add
git commit
git checkout bugFix
git rebase master
阅读全文 »

创建

创建私有源 git 仓库,可以创建 GitHub 仓库或者其它,然后将私有源添加至本地,下以 git@github.com:Coder-ZJQ/Specs.git 为例:

# pod repo add NAME URL [BRANCH]
pod repo add zjq-specs git@github.com:Coder-ZJQ/Specs.git

可以执行下列命令查看已添加的私有源:

# 查看本地的私有源列表
pod repo list

校验私有源中的 spec 是否合法

cd ~/.cocoapods/zjq-specs
pod repo lint .
阅读全文 »

  • method_t 是对方法 / 函数的封装
struct method_t {
    SEL name;						// 方法名
    const char *types;	// 编码(返回值类型,参数类型)
    IMP imp;						// 指向方法的指针(方法地址)
}
阅读全文 »

isa

  • 在 arm64 架构之前,isa 就是一个普通的指针,存储着 Class、Meta-Class 对象的内存地址
  • 从 arm64 架构开始,对 isa 进行了优化,变成了一个共用体 (union) 结构,还使用位域来存储更多的信息
阅读全文 »

位段

信息的存取一般以字节为单位。实际上,有时存储一个信息不必用一个或多个字节,例如,“真”或“假”用0或1表示,只需1位即可。在计算机用于过程控制、参数检测或数据通信领域时,控制信息往往只占一个字节中的一个或几个二进制位,常常在一个字节中放几个信息。

阅读全文 »