共计 9 篇文章

iOS 12 越狱小记

最近发现 iOS 12.0 → 12.1.2 支持越狱了,在这里可以找到详细的信息。目前支持的芯片是 A8X 到 A11,所以 A12 设备比如:iPhone XR, XS 和 ...

iOS 消息转发机制

Objective-C 是一门动态语言,它将很多静态语言在编译和链接时期做的事情,放到了运行时来处理。之所以能具备这种特性,离不开 Runtime 这个库。Runtime 很好的解决了如何在运行时期找到调用方法这样的问题。Objective-C 下所有的方法调用都可以理解为,给一个对象发送一个消息。一个对象接收到消息后,会从当前类的方法列表或者父类的方法列表查找到对应的方法实现(IMP)来处理该消息。大致流程如下: 通过 NSObject ...

SDWebImage 源码分析

SDWebImage基本是iOS项目的标配。他以灵活简单的api,提供了图片从加载、解析、处理、缓存、清理等一些列功能。让我们专心于业务的处理。但是并不意味着会用就可以了,通过源码分析和学习,让我们知道如何用好它。学习分析优秀源码也可以从潜移默化中给我们提供很多解决日常需求的思路。 简洁的接口 首先来介绍一下这个 SDWebImage 这个著名开源框架吧, 这个开源框架的主要作用就是: Asynchronous image downloader ...

深入理解alloc、init方法

本文源码为 runtime 中的objc4-706.tar.gz。主文引用的源码都可以在runtime文件夹下的NSObject.h、NSObject.mm、objc-runtime-new.h、objc-runtime-new.mm找到。下面就参照源码,探究一下它的真面目。 一、alloc做了什么 可以看到alloc方法调用了_objc_rootAlloc方法 ...

Masonry 源码分析

iOS 源代码分析 --- Masonry Masonry 是 Objective-C 中用于自动布局的第三方框架, 我们一般使用它来代替冗长, 繁琐的 AutoLayout 代码.Masonry让NSLayoutConstraint使用起来更为简洁。Masonry简化了NSLayoutConstraint的使用方式,让我们可以以链式的方式为我们的控件指定约束。Masonry框架是Objective-C版本的,如果是Swift语言,那么就得使用SnapKit布局框架了。SnapKit其实就是Masonry的Swift版本,两者虽然实现语言不同, ...