在这一节,我们来看安装RxSwift的几种不同的方法。开始之前,我们先整体了解一下RxSwift这个项目。

了解RxSwift官方项目

如果我们直接下载RxSwift压缩包,解压缩之后,用Xcode打开RxSwift-master/Rx.xcworkspace,可以看到,一共包含了3个项目:

install-rxswift

其中,我们感兴趣的,是RxRxExampleRx项目中,包含了完整的RxSwft / RxCocoa / RxBlocking / RxTest实现,以及,一个用于演示RxSwift各种概念的Rx.playground

install-rxswift

Rx.playground

应该说,一旦你理解了reactive programming的思想之后,这份playground文件,是学习RxSwift最直接有效的途径之一了。并且,RxSwift这种通过playground编写文档示例的方式,也值得我们学习和借鉴。

为了可以在Rx.playground中把玩RxSwift,我们需要在Xcode的tool bar上把Target设置成RxSwift-macOS,然后等Xcode自动完成构建(第一次这个过程可能会有点儿长)。

install-rxswift

Building完成后,我们就可以选择不同主题的playground文件,在控制台里看到对应示例的执行结果了:

install-rxswift

当然,我们现在的重点还不是这些结果的细节。稍后的内容里,我们会详细介绍其中的每个概念。现在,我们只要知道如何使用它就好。

RxExamples

除了一套良好编写的playground之外,RxSwift还提供了一份iOS和macOS app的示例,它们位于RxExample项目中,可以帮助我们进一步了解RxSwift在实际开发中的用法。我们可以通过在Tool bar中如下图所示,切换不同的Target来执行这两个例子:

install-rxswift

把它们分别执行起来,看上去是这样的:

install-rxswift

而这两个项目的源代码目录是这样的:

install-rxswift

在图中,我们分别标记了macOS和iOS对应的入口文件以及代码实现,当大家对RxSwift有了一定的了解之后,就可以自己回过头来翻翻这些官方的例子,会有不少收获和启发。

以上,就是对于RxSwift整个项目文件的一个大体介绍。当然,我们使用RxSwift并不仅仅是为了学习的,最终还是要把它集成到自己的项目中完成开发任务。接下来,我们就来了解安装RxSwift的三种不同的方式。

通过CocoaPods安装

最简单的,当然就是用CocoaPods。如果你还没安装过cocoapods,直接在终端执行sudo gem install cocoapods安装一下就好了。

然后,在我们之前创建的FilterNum目录,执行pod init,cocoapods会在当前目录新建一个叫做Podfile的文件,我们在其中添加下面的内容:

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'FilterNumber' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for FilterNumber
  pod 'RxSwift',    '~> 3.0'
  pod 'RxCocoa',    '~> 3.0'
end

保存退出后,执行pod install,等待cocoapods安装完成就好了。完成之后,我们可以在控制台看到类似下面这样的结果:

install-rxswift

Cocoapods会在当前目录下为我们创建一个叫做FilterNumber.xcworkspace的文件,一旦集成了RxSwift之后,我们就要打开这个文件继续我们的开发任务了。要说明的一点是,如果是第一次打开workspace文件,我们直接import RxSwift Xcode会提示我们No such module RxSwift。这时,只要按Cmd + B build一次整个工程,就好了。

通过SPM安装

如果要在非Mac环境下使用RxSwift,SPM应该是你首选的方法。首先,新建一个项目目录,例如:RxSwift_SPM;其次,在RxSwift_SPM目录中,执行swift package init --type=executable。这样,SPM就会在当前目录中创建一个Package.swift文件,在这个文件里,我们添加下面的内容:

import PackageDescription

let package = Package(
    name: "RxSwift_SPM",
    targets: [],
    dependencies: [
        .Package(url: "https://github.com/ReactiveX/RxSwift.git", majorVersion: 3)
    ]
)

这样,SPM就会知道,我们的项目依赖主版本号为3的RxSwift项目了。保存退出后,执行swift build,SPM就会把RxSwift clone下来并自动构建。

然后,我们就可以在Sources/main.swift中,import RxSwift了。

手动安装

当然,如果你的项目中,不方便使用上面我们提及的两个工具。也可以手动把RxSwift添加到自己的Xcode工程,别担心,这个过程并没有听起来的这么麻烦。

首先,在你的项目根目录,执行git submodule add git@github.com:ReactiveX/RxSwift.git,让RxSwift以submodule的方式集成到项目目录:

install-rxswift

完成之后,项目中就会多出一个RxSwift文件夹。

其次,用Xcode打开之前项目文件,例如:FilterNumber.xcodeproj,把RxSwift/Rx.xcodeproj拖到项目中,Xcode会提示我们处理处理添加进来的文件,直接点击Finish按钮。这样,在项目中,就会多了一个RxSwift目录:

install-rxswift

第三,在TARGETS中,选中FilterNumber,点击Build phases,在Link Binary With Libraries中,点击左下角的+,Xcode就会提示我们要添加进来的程序库。可以看到,在workspace里,一共有16个程序库,分别对应了RxBlocking / RxCocoa / RxSwift / RxTest各自在iOS / macOS / watchOS / tvOS上的版本。这里,我们应该选择iOS对应的版本:

install-rxswift

第四,添加完成之后,按Cmd + B重新构建一次,我们就可以在项目中import RxSwift了。

What's next?

以上,就是几种常用的安装RxSwift的方式,完成之后,我们就可以开始逐步了解reactive programming了。下一节里,我们就用若干切实可行的例子,来了解reactive programming中最重要的一些基本概念。

所有订阅均支持 12 期免息分期

¥ 59

按月订阅

一个月,观看并下载所有视频内容。初来泊学,这可能是个最好的开始。

开始订阅

¥ 512

按年订阅

一年的时间,让我们一起疯狂地狩猎知识吧。比按月订阅优惠 28%

开始订阅

¥ 1280

泊学终身会员

永久观看和下载所有泊学网站视频,并赠送 100 元商店优惠券。

我要加入
如需帮助,欢迎通过以下方式联系我们