0%

我们再查看 objc4 源码的时候,会看到苹果的大婶们常用的两个宏定义 fastpathslowpath
我们来看看具体这两个定义是怎么样子的

1
2
#define fastpath(x) (__builtin_expect(bool(x), 1)) // x 大概率为真
#define slowpath(x) (__builtin_expect(bool(x), 0)) // x 大概率为假
阅读全文 »

透过现象看本质

作为一个流弊的程序猿,想要掌握一门语言,并且精通它,就必须扒开他的外衣,一层层往里看,研究他的内在(底层)原理。对于一个穿着鲜艳外衣的‘美女’,门外汉完全不知道怎么下手有咩有?
那我们到底应该怎么办呢?

好吧,我们只能从最熟悉的地方输入,比如说通过你的对象。如果你还没有对象,赶紧去开辟一个,或者申请一个吧。哈哈哈~~

阅读全文 »

苹果在 OpenSource 官网 上开放了一部分源码,我们可以同过这个官网,下载我们所需要的东西,比如 objc 的源码,通过源码能够方便我们了解iOS的底层原理。想要快速的了解我们的 runtime,搭建一个可以编译调试的 runtime ,能够向我们的效率倍增。下面对针对最新的 objc4-781.2 进行编译

阅读全文 »

简介

class-dump 是一个工具,它利用了 Objective-C 语言的运行时特性,将存储在 Mach-O 文件中的头文件信息提取出来,并生成对应的 .h 文件。

阅读全文 »

什么是Homebrew

Homebrew 是 Mac OS 的一种包管理工具,相当于 Redhat Linux(Centos/RHEL/Fedora) 的 yum 或者 Debian Linux(Debian/Ubuntu) 的 apt-getHomebrew 的官网

Homebrew 安装

使用官方提供的方法安装 Homebrew

1
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
阅读全文 »

私有库创建步骤

1. 建立自己的 Git 仓库,作为自己的索引库,将索引库添加到 pod repo 中

这里以自己的服务器部署 Gitlab 作为私有库管理。Gitlab 部署
Gitlab CentOS 部署
GitLab 安装包官网地址
Gitlab 部署完毕后,创建类似 Github 的索引仓库,这里命名 gitlab-specs

阅读全文 »

进程、线程

进程

  • 进程是一个具有一定独立功能的程序关于某次数据集合的一次运行活动,它是操作系统分配资源的基本单位;
  • 进程是指在系统中正在运行的一个应用程序,就是一段程序的执行过程,我们可以理解成手机里的一个App;
  • 每个进程之间都是独立的,每个进程运行在其专用且受保护的内存空间内,拥有独立运行所需的全部资源;
阅读全文 »