WMATAFetcher 2.2.2

WMATAFetcher 2.2.2

测试已测试
Lang语言 SwiftSwift
许可 MIT
Released最后发布2016年12月
SwiftSwift 版本3.0
SPM支持 SPM

Christopher Rung维护。



WMATAFetcher

描述

这是一个跨平台的 CocoaPod,可以从 WMATA 的 API 中获取信息,并将其存储在 Train 对象中,这些对象模仿了 API 的 AIMPredictionTrainInfo 对象。

要求

  • iOS 8.0+
  • macOS 10.9+
  • tvOS 9.0+
  • watchOS 2.0+

安装

WMATAFetcher 通过 CocoaPods 提供。要安装它,请将以下内容添加到您的 Podfile

target 'TargetName' do
    pod 'WMATAFetcher'
end

接下来,在终端中运行以下命令

$ pod install

使用

实例化

首先,创建一个新的 WMATAFetcher 对象,传递您的 WMATA API 密钥

var wmataFetcher = WMATAFetcher(WMATA_API_KEY: "[YOUR_WMATA_KEY]")

组间空格

isSpaceInTrainArray BOOL 决定了是否在 Station.Space 对象的 Train 数组中分隔每个组(默认:true)。

在实例化新的 WMATAFetcher 对象时可以初始化此值

var wmataFetcher = WMATAFetcher(WMATA_API_KEY: "[YOUR_WMATA_KEY]", isSpaceInTrainArray: false)

您还可以直接更改 isSpaceInTrainArray 的值

wmataFetcher.isSpaceInTrainArray = false

获取

将车站代码传递给 wmataFetcher.getStationPredictions 来获取预测。实现 onCompleted 处理返回的 TrainResponse

如果 trainResponse.errorCodenil,我们可以安全地强制取消包装 trainResponse.trains?

let wmataFetcher = WMATAFetcher(WMATA_API_KEY: "[API KEY HERE]")

let metroCenterStationCode = Station(description: "Metro Center")!.rawValue

wmataFetcher.getStationPredictions(stationCode: metroCenterStationCode, onCompleted: {
    trainResponse in
    if trainResponse.errorCode == nil {
        for train in trainResponse.trains! {
            print(train.debugDescription);
        }
    } else {
        switch trainResponse.errorCode! {
        case -1009:
            print("Internet connection is offline")
        default:
            print("Prediction fetch failed (Code: \(trainResponse.errorCode!))")
    }
})

错误处理

TrainResponse.errorCode 是一个表示由 WMATA 的 API 返回的 HTTP 状态码Int?。如果它是 nil,则获取操作成功。最常见错误代码包括

  1. -1009
    • 互联网连接离线
  2. 401
    • 未经授权。这可能是无效的 WMATA 密钥。

依赖关系

显著项目

Available on the Mac App Store

许可

WMATAFetcher在MIT许可证下可用。更多信息请参阅LICENSE文件。