desgard.com

CocoaPods 历险 - Resolver 仲裁入口解析

回顾 在 CocoaPods 历险 - 总览 中已经分析了 CocoaPods 的整个组件构成和职责。这篇博客单说在 Install 过程中的版本仲裁算法,其中包含了 Resolver 的入口过程以及 Molinillo 仲裁算法,这一篇我们来关注入口方案。...

CocoaPods 历险 - 总览

基本上所有的 iOSer 都是用过 CocoaPods 来管理 iOS 工程中的三方库,但是很少有系列文章来详细的解读 CocoaPods。笔者决定自行尝试一下。本文所有 CocoaPods 源码使用的是 1.5.3 版本。 Why Ruby? 笔者在日常工作中,在做一关于项目组件管理的效率工具,由于组内技术选型也确定了使用...

做点有意思的事情 - 2018 年小结

又到了写年终总结的时候,2018 年感觉自己做了很多有意思的事情,但是感觉时间仍旧不够用,就连写博客总结的时间都被剥夺了。希望 2019 年能多挤一些时间出来留给学习与总结。因为很多东西的总结是关键的,可能这是适用于自身学习的方法论。 🤣 积累 读书 翻了一下 2018 的豆瓣成绩,技术类 3 本,读物类 19 本(之前懒得记录,12月份一块记了一波豆瓣 😆),读书居然比去年少了...

AutoLayout 中的线性规划 - Simplex 算法

前一段时间由于跳槽,博客停更了大概有 150 天左右的样子。在所有事情都安置好后,决定推掉之前写过的半截文章,开始更这么一个专题。再这之前,自己没有阅读 paper 的习惯,这也是一次对自己的挑战。 本文与 iOS 关系不大,多半偏向 paper 的学习和算法介绍,请读者根据兴趣自行阅读。 温习线性规划 当我们在 Storyboard 上建立完一堆约束后,发现其实所有的约束都可以用多个约束间的不等式关系来描述。于是乎将 UI...

验证试验 - 探求 fishhook 原理(二)

示例 Demo Code 继续使用上一篇文中的代码示例: #include <stdio.h> #include "fishhook.h" static int (*original_strlen)(const char *_s); int new_strlen(const...

直到双眼适应黑暗 - 2017 年小结

作者注:原本题目为《探寻属于自己的森林》,但是一想到可能有点绿(╯‵□′)╯︵┻━┻,就改成了《挪威的森林》中另外一句印象深刻的话。也许“适应黑暗”有些悲观,但是也能引申为从学生到职场员工的一种身份的转变吧。 忙忙碌碌地度过了 2017,这年一直在探求自己未来的职业方向,和探索需要学习的一些新的技术,汇总一下今年的一些成绩,也算是给自己一个交代(找点存在感)。 书与音乐 年初的时候给自己定下了这么一个目标:持续阅读,畅销书适量阅读,技术书精细挖掘。用豆瓣记录了一年的小说、传记、杂文及设计书阅读量,共20本,其用来处理平时在交通工具上的琐碎时间: 技术书上,决定以深度为主,因为想在移动领域更上一层,要做到每一页都事件,每一段代码都理清思路。以下为技术书单以及学习情况(按照推荐度排序): 《iOS 应用逆向工程》:用来入门逆向看的书。这本书也是收获颇多的一本,从使用 class-dump 、Theos、Cydia 等逆向工具,到 Tweak 的编写实战直至使用 IDA 、LLDB...