desgard.com

SDWebImage Source Probe: WebCache

最近两天,在完成工作业务之余,除了看书,自己也要开始深入的阅读经典的源码。来完善我的 iOS 源码探求 系列文章。 对源码的阅读是一个长久的学习过程,我会将业务中最常用的一些经典三方库拿出来进行学习。这一点我很敬佩 @Draveness 的精神,并向他看齐。 SDWebImage 简单介绍 SDWebImage 根据官方文档,其实就是提供了以下功能: Asynchronous image downloader with...

浅谈 block(2) - 截获变量方式

本文会通过 clang 的 -rewrite-objc 选项来分析 block 的 C 转换源代码。其分析方式在该系列上一篇有详细介绍。请先阅读 浅谈 block(1) - clang 改写后的 block...

objc_msgSend消息传递学习笔记 - 消息转发

该文是 objc_msgSend消息传递学习笔记 - 对象方法消息传递流程 的基础上继续探究源码,请先阅读上文。 消息转发机制(message forwarding) Objective-C 在调用对象方法的时候,是通过消息传递机制来查询且执行方法。如果想令该类能够理解并执行方法,必须以程序代码实现出对应方法。但是,在编译期间向类发送了无法解读的消息并不会报错,因为在 runtime 时期可以继续向类添加方法,所以编译器在编译时还无法确认类中是否已经实现了消息方法。 当对象接受到无法解读的消息后,就会启动消息转发机制,并且我们可以由此过程告诉对象应该如何处理位置消息。 本文的研究目标:当 Class 对象的...

浅谈 block(1) - clang 改写后的 block 结构

这几天为了巩固知识,从 iOS 的各个知识点开始学习,希望自己对每一个知识理解的更加深入的了解。这次来分享一下 block 的学习笔记。 block 简介 block 被当做扩展特性而被加入 GCC 编译器中的。自从 OS X 10.4 和...

从经典问题来看 Copy 方法

在初学 iOS 的时候,可能会被灌输这么一个常识,切记 NSString 的 property 的修饰变量要写作 copy ,而不是 strong,那么这是为什么? 经典面试题:为什么 NSString 类型成员变量的修饰属性用 copy 而不是...

objc_msgSend消息传递学习笔记 - 对象方法消息传递流程

在Effective Objective-C 2.0 - 52 Specific Ways to Improve Your iOS and OS X Programs一书中,tip...