Wbq's Blog

「一啄一饮,莫非前定」

一次二级指针引发的血案

原因 最近开发过程中因为自己的错误操作导致了一个很傻问题。感觉是一个基于内存管理,Block,指针的综合问题。整个理解下来,对上述概念有些了新的认识,觉得值得记录一次。首先非常鸣谢一道题考你对__autoreleasing和__block的理解的作者,本次记录的问题,基本也是基于作者提供的理解思路。 提问 我把日常的业务稍微精简了成了以下代码: “网络请求,把error作为二级指针传...

重读YYImage

前言 实至今日,才发现自己的能力在各方面和牛逼的人差距还是挺大的。计算机的很多基础知识都很薄弱。 其实15年刚刚做iOS的时候就接触过YYImage,但也没有好好读过源码。 最近因为业务需要,对各种图片格式也有了新的认识,索性重新来读一遍YYImage,顺便总结一些感想 YYImage是YYKit系列中的其中一个组件。 正文 其实纵观整个YYImage还是基于ImageIO和Co...

block hook

导言 block作为oc极为重要的一部分从来都是面试和开发乐此不疲的话题与工具。 关于block的数据结构和实现原理网上大大小小真的已经很多了,这里不再叙述,最近有业务需求需要hook block 进行一些无埋点的监控,所以顺便记录下学习过程。 方案 当前blockhook的方案大致有两种: 1.基于libffi的blockhook libffi的原理和用法这里不予赘述了。 大...

一次启动优化之旅

导言 随着客户端业务越来越重,启动初始化代码越来越多,导致我们的APP启动时间越来越长。 而对于App来说用户体验却至关重要。 这里列举两个公开的数据: 1 2 3 《页面加载超过3秒,57%的用户会离开》 《Amazon页面加载延长1秒,一年就会减少16亿美金营收》 我在某天不经意间发现竞品们的打开时长时: 再相比我们的APP启动时长就有点慢了。 面对竞品怎么能在开机...

从零阅读Vue.js

以往Get一些技能之后,总以为记在脑子里就万事大吉了,随着年纪增大越来越发现记忆力是最不靠谱的东西,所以往后的学习我都想记录下来,方便日后翻看。 接触前端前前后后也有很长时间,一直没有特别深入地学习。最近因为工作原因面了很多前端,自己也顺便花了点时间把Vue的源码从头看了一遍,方便面试提问(阴险笑容)。 Vue真的是一个非常了不起的前端框架,源码不压缩情况下一共就1w行+,作者自己也说比...

第一篇博客

用jekyll定制自己的blog,无需服务器,无需数据库 😂。 ~ $ gem install jekyll ~ $ jekyll new my-awesome-site ~ $ cd my-awesome-site ~/my-awesome-site $ bundle exec jekyll serve 然后打开 http://localhost:4000,就可以看到默认模版了...