Three20Three20模组架构简介(上)

2020-06-09  阅读 347 次

在 笔者先前的 Three20 文章 中曾经提到,在本月初最新的 Three20 大改版中,将长久以来令人诟病的庞大程式库细分为多个模组,本篇文章将针对这些模组进行简单的介绍及说明,让大家能够对于 Three20 的架构有基本的概念。

整体架构图

如前述,Three20 已经分为模组化的架构,开发者可以自由选择所需要的模组加入到专案中,但这些模组之间有一些相依性的问题,阶层的架构如下:

------------------------------------------ |                    UI                  | ------------------------------------------ | UINavigator  |            |   Style    | |--------------|            |------------| |   UICommon   |            |  Network   | ------------------------------------------ |                   Core                 | ------------------------------------------

如图上所见,如果我们要使用 Three20Style 这个 framework 的话,就会一併加入 Three20Network 和 Three20Core 这两个必备的底层 framework。但我们不需要担心是否要自行加入这些相依的 framework,因为在 Three20 的各 framework 内部就有作相关的设定了,我们只需要加入想要使用的 framework 即可。

Three20Core

Three20Core 是整个 Three20 中最底层的 framework,所有的 framework 均相依于这个 framework。在 Three20Core 中提供了许多常用的 helper method、Macro,还有对 Cocoa Touch 的内建类别透过 Category 新增一些额外的方法。

以下列举几个在 Three20 中常出现的共用方法、函式:

而针对 Foundation 类别也有许多新增,以下列举几个:

  • NSData
  • NSMutableArray
  • NSString
  • Three20Network

    Three20Network 主要提供了 TTURLRequest 类别,相对于 Cocoa 内建的 NSURLRequest 而言,此类别有以下特点:

    伴随着 TTURLRequest,Three20Network 中也有 TTURLResponse 类别及 Protocol、TTURLCache 等类别,有兴趣的读者可以自行阅读相关原始码。

    Three20UICommon

    若 Three20Core 是 Three20 中的基础,则 Three20UICommon 则是 Three20 中 UI 介面相关类别、函式的基础了。此类别仍然包含了许多方便的 helper 方法、Macro,也对 UIKit 的现有类别加入许多方法。

    以下列举 Three20UICommon 中的几个方法,主要是以各种判断为主:

    至于对 UIKit 的新增方法,以 UIWindow 为例:

    小结

    在此篇文章中介绍了 Three20 的架构及底层三个模组的用途,在下一篇文章中笔者将继续探讨 Three20 的上层模组,以及 XML、JSON 两个附属的额外模组,还请各位多多指教!

    上一篇:
    下一篇: