罗晨汛

罗晨汛

移动互联网开发者

Yarn 是 Facebook 发布的一款依赖包安装工具。是一个新的快速安全可信赖的可以替代 NPM 的依赖管理工具。官方对其的介绍:

  • 与 npm 兼容

  • 速度超快 (可离线下载)
    Yarn 缓存了每个下载过的包,所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率,因此安装速度更快。

  • 超级安全
    在执行代码之前,Yarn 会通过算法校验每个安装包的完整性。

  • 超级可靠
    使用详细、简洁的锁文件格式和明确的安装算法,Yarn 能够保证在不同系统上无差异的工作。

  • 扁平模式
    将依赖包的不同版本归结为单个版本,以避免创建多个副本。

阅读全文 »

上一篇中我们讨论了 Block 的来源,它是 OC 中对闭包的实现。Block 的设计初衷及其特性,主要 3 个特性:

1.可嵌套定义,可在函数及 Block 内定义 Block;
2.Block 内可访问外层变量,这里我们上篇介绍了有 截取变量__block 变量
3.方法传递,包括了后面会介绍的 Block 的堆拷贝。

那根据我们的 “三问精神”,这篇开始我们就来深究一下 Block 本身及这些特性是怎样设计并实现的。

这一篇中,我们将为深入 Block 源码做好各种准备,它将为我们后续对 Block 的研究或是学习其它技术提供知识储备与帮助。

阅读全文 »

对于一个 iOS 研发来说,Block 绝对是是日常使用率最高的几种工具之一。不知道大家在平常的使用之余有没有想过,Block 到底是什么?它是怎样设计出来的,底层是如何实现的?

从本章起,我们就来一起探究一下 iOS 中的 Block 技术。

Block 就是带有局部变量 (也叫自动变量) 的匿名函数。

上面这个也许是我们见过最多的 Block 定义了。老实说,可能你本来还大概知道 Block 是个什么东西,听到这个定义之后更懵逼了,局部变量、匿名函数,什么鬼?我们不妨抛开此定义,细想下,Block 为什么存在,是为了解决什么问题?

阅读全文 »
0%