一、前言
在开发过程中有这么一种情况,某个特性开发的代码需要回滚,但是该特性的开发提交和所有即将上线的提交处于统一分支,此时需要将该特性相关的提交依次回滚。在回滚代码时希望满足两个要求,能够保留详细的回滚日志信息、只产生一次提交记录。
在开发过程中有这么一种情况,某个特性开发的代码需要回滚,但是该特性的开发提交和所有即将上线的提交处于统一分支,此时需要将该特性相关的提交依次回滚。在回滚代码时希望满足两个要求,能够保留详细的回滚日志信息、只产生一次提交记录。
Pro Multithreading and Memory Management for iOS and OS X with ARC, Grand Central Dispatch, and Blocks 这本书篇幅不多,可分为如下3部分,共8个章节。
内存管理基础知识:第一章、Life Before Automatic Reference Counting;第二章、ARC Rules;第三章、ARC Implementation。
Block:第四章、Getting Started with Blocks;第五章、Blocks Implementation。
GCD:第六章、Grand Central Dispatch;第七章、GCD Basics;第八章、GCD Implementation。
本文为该本书的读书笔记,Block 相关的内容比较多,参考这篇文章。
OC 为动态运行时语言,其将许多决策从编译和链接时延迟到运行时执行。OC 中的方法调用本质为消息传递,[receiver message] 可以解释为向 receiver 对象发送 message 消息。今天阅读了 Apple 开发文档的 Messaging 章节,利用运行时系统提供的相关方法,OC 消息传递式的方法调用最终转换成了标准 C 语言函数调用方式,实现了统一。
本文以 Apple 开发文档为基础,讲述 OC 以消息传递方式实现方法调用的执行流程。第一节介绍执行消息解析的函数;第二节讲述消息解析过程中,消息对应的方法实现是如何寻找的;第三节讲述方法实现找到后,如何执行。