我们再查看 objc4
源码的时候,会看到苹果的大婶们常用的两个宏定义 fastpath
和 slowpath
我们来看看具体这两个定义是怎么样子的
1 |
我们再查看 objc4
源码的时候,会看到苹果的大婶们常用的两个宏定义 fastpath
和 slowpath
我们来看看具体这两个定义是怎么样子的
1 | #define fastpath(x) (__builtin_expect(bool(x), 1)) // x 大概率为真 |
作为一个流弊的程序猿,想要掌握一门语言,并且精通它,就必须扒开他的外衣,一层层往里看,研究他的内在(底层)原理。对于一个穿着鲜艳外衣的‘美女’,门外汉完全不知道怎么下手有咩有?
那我们到底应该怎么办呢?
好吧,我们只能从最熟悉的地方输入,比如说通过你的对象。如果你还没有对象,赶紧去开辟一个,或者申请一个吧。哈哈哈~~
苹果在 OpenSource 官网 上开放了一部分源码,我们可以同过这个官网,下载我们所需要的东西,比如 objc 的源码,通过源码能够方便我们了解iOS的底层原理。想要快速的了解我们的 runtime
,搭建一个可以编译调试的 runtime
,能够向我们的效率倍增。下面对针对最新的 objc4-781.2
进行编译
Runtime 是由 C、 C++、 汇编共共同组成的 为 iOS 提供运行时功能的一套 API, 其中最主要的就是消息机制。
可以查看苹果的官网 Objective-C Runtime Programming Guide
homebrew
安装$ brew cask install iterm2
下载执行文件,将其拖到 Applications
文件夹下,下载地址iTerm2官网
Homebrew 是 Mac OS 的一种包管理工具,相当于 Redhat Linux(Centos/RHEL/Fedora) 的 yum
或者 Debian Linux(Debian/Ubuntu) 的 apt-get
。 Homebrew 的官网
使用官方提供的方法安装 Homebrew
1 | /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" |
这里以自己的服务器部署 Gitlab 作为私有库管理。Gitlab 部署
Gitlab CentOS 部署
GitLab 安装包官网地址
Gitlab 部署完毕后,创建类似 Github 的索引仓库,这里命名 gitlab-specs